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>

 

posted @ 2023-02-02 14:54  dabeen  阅读(2254)  评论(0编辑  收藏  举报