Python编写html文件
背景:部门需要发送周报、月报,每次都需要去数据库导出数据整理统计发送给领导,人工操作显得繁琐且费时间。
1、可以定时用python将数据库查询数据结果写成html文件,达到浏览器访问的效果,定时发送给领导查看即方便又省力。效果如下:
2、首先准备好数据,要保存在哪个路径下命名为什么html文件,要写入html文件的数据是什么
a. 保存在本地E:\Double路径下并命名为test.html: E:\Double\test.html
b. 此处数据我使用的是json数组(此数组是由python连接数据库select显示出来的结果,可查看上篇Python连接数据库):
[{'BugID': 21457,'Bug标题': '新增报错','创建人': '小A'},{'BugID': 21484,'Bug标题': '删除报错', '创建人': '小B',},{'BugID': 21607,'Bug标题': '修改报错', '创建人': '小C'},{'BugID': 21626,'Bug标题': '查询报错', '创建人': '小D'}]
3、Python代码
# -*- coding: UTF-8 -*- def bugHtml(jsonList,localFile): ''' color设置黑色字体,width比例100%自适应页面,border-collapse表格边框线合并,text-align表格内容显示居中 background-color蓝色背景,padding内边距,border-color蓝色边框; ''' #<style>定义table全局格式 table_head="<!DOCTYPE html>\n" \ "<html>\n" \ "<head>\n" \ "<meta charset='UTF-8'>\n" \ "<title>2023年测试组</title>\n" \ "<style type='text/css'>\n" \ "table {color:#333333; width:100%; border-collapse:collapse; text-align:center;}\n" \ "table th {background-color:#97CEFA; padding:8px; border-color:#97CEFA;}\n" \ "table td {padding:8px; border-color:#97CEFA;}\n" \ "</style>\n" \ "</head>\n" #处理表头格式 table_th='' for title in jsonList[0]: table_th = table_th + '<th>'+ str(title) + '</th>' table_th='<tr>' + table_th + '</tr>\n' #处理行格式 table_tr = '' for i in range(0, len(jsonList)): for n,m in enumerate(jsonList[i]): if n == 0: #行首单独处理<tr> jsonList[i][m] = '<tr><td>' + str(jsonList[i][m]) table_tr = table_tr + str(jsonList[i][m]) + '</td><td>' #行尾单独处理</tr> table_tr = table_tr[0:-3] + '/tr>\n' table_body = "<body>\n" \ "<table border='1'>\n" \ "<caption>测试组本周未解决Bug</caption>\n" table_body=table_body+table_th+table_tr+'</table>\n</body>\n' #将整个html代码组合起来 tableCode = table_head + table_body + '</html>' #将html代码写入文件 html_write=open(localFile,"w",encoding="utf-8") html_write.write(tableCode) if __name__=="__main__": #jsonList是json数组 jsonList=[{'BugID': 21457,'Bug标题': '新增报错','创建人': '小A'}, {'BugID': 21484,'Bug标题': '删除报错', '创建人': '小B',}, {'BugID': 21607,'Bug标题': '修改报错', '创建人': '小C'}, {'BugID': 21626,'Bug标题': '查询报错', '创建人': '小D'}] localFile=r'E:\Double\test.html' bugHtml(jsonList, localFile)
4、执行脚本成功在本地E:\Double路径下生成test.html文件, 选中test.html文件右键浏览器中打开
浏览器展示结果
5、也可以选中test.html文件右键记事本打开,查看生成的html代码
<!DOCTYPE html> <html> <head> <meta charset='UTF-8'> <title>2023年测试组</title> <style type='text/css'> table {color:#333333; width:100%; border-collapse:collapse; text-align:center;} table th {background-color:#97CEFA; padding:8px; border-color:#97CEFA;} table td {padding:8px; border-color:#97CEFA;} </style> </head> <body> <table border='1'> <caption>测试组本周未解决Bug</caption> <tr><th>BugID</th><th>Bug标题</th><th>创建人</th></tr> <tr><td>21457</td><td>新增报错</td><td>小A</td></tr> <tr><td>21484</td><td>删除报错</td><td>小B</td></tr> <tr><td>21607</td><td>修改报错</td><td>小C</td></tr> <tr><td>21626</td><td>查询报错</td><td>小D</td></tr> </table> </body> </html>