ID号 |
日期 |
开始时间 |
结束时间 |
模块名 |
总文件数 |
传输文件数 |
总文件大小(byte) |
传输文件大小(byte) |
错误备注 |
'''
#定义一个表头
#style="border:black solid 1px;border-collapse:collapse"的作用是把边框设置为1px
reshtml_02 = '''
%s |
%s |
%s |
%s |
%s |
%s |
%s |
%s |
%s |
%s |
'''
#定义每一行的格式,nowrap="nowrap"的意思是,内容不自动换行。
def doResults(who, howmany, today_now):
n=1
print header + reshtml_01 % (who, who, howmany, url)
#首先打印头文件和reshtml_01页面
db_conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='',db='test')
db_curs=db_conn.cursor()
#创建数据库连接和游标
if who == '':
db_curs.execute("SELECT id,date_ymd,s_time,e_time,mod_name,files,files_traned,filesize,filesize_traned,a_error \
FROM bak_stat where date_ymd='%s' " % today_now )
for data in db_curs.fetchall():
if data[9] == '':
print reshtml_02 % (0,data[1],data[2],data[3],data[4], \
format(data[5],','),format(data[6],','),format(data[7],','),format(data[8],','),data[9])
else:
print reshtml_02 % (0,data[1],data[2],data[3],data[4],data[5],data[6],data[7],data[8],data[9])
n+=1
#设置一个ID编号,从1开始,统计当天的备份计数,如果读data[0],则是数据库总的计数。
else:
db_curs.execute("SELECT id,date_ymd,s_time,e_time,mod_name,files,files_traned,filesize,filesize_traned,a_error \
FROM bak_stat where mod_name='%s' " % who )
for data in db_curs.fetchall():
if data[9] == '':
print reshtml_02 % (n,data[1],data[2],data[3],data[4], \
format(data[5],','),format(data[6],','),format(data[7],','),format(data[8],','),data[9])
else:
print reshtml_02 % (n,data[1],data[2],data[3],data[4],data[5],data[6],data[7],data[8],data[9])
n+=1
#format为格式化千分位分隔符,但是测试用的python2.7版本,因为在python2.4中,还没有加入format这个内置函数。
#data是形如 (2L, datetime.date(2010, 11, 23), datetime.timedelta(0, 36866), datetime.timedelta(0, 36866), 'mytest1', 3L, 0L, 17696256L, 0L, '') 这样的一行数组。L代表长整型。
#判断,如果who变量为空,则执行……,否则
db_curs.close()
db_conn.close()
def process():
error = ''
form = cgi.FieldStorage()
if form.has_key('person'):
who = form['person'].value
else:
who = ''
if form.has_key('howmany'):
howmany = form['howmany'].value
else:
howmany = ''
if form.has_key('action'):
doResults(who, howmany,howmany)
else:
showForm(who, howmany)
#重点:
#1·FieldStorage是cgi中的主要函数,它完成所有工作。
#2·form = cgi.FieldStorage()表示实例化了这个类。之后,会从浏览器读取输入的信息。
#3·被实例化后,包含一个类似字典的对象,具有一系列的键-值对,键就是通过表单传入的表单条目的名字,而值则包含相应的数据。
#4·说明,person——键,form['person'].value——值
#5·如果form.has_key('action'),action键存在,就执行doResults语句
if __name__ == '__main__':
process()
阅读(2485) | 评论(0) | 转发(0) |