背景:部门需要发送周报、月报,每次都需要去数据库导出数据整理统计发送给领导,人工操作显得繁琐且费时间。

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>

Python编写html文件的更多相关文章

  1. python编写文件统计脚本

    python编写文件统计脚本 思路:用os模块中的一些函数(os.listdir().os.path.isdir().os.path.join().os.path.abspath()等) 实现功能:显 ...

  2. [译]Python编写虚拟解释器

    使用Python编写虚拟机解释器 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环 ...

  3. Hadoop:使用原生python编写MapReduce

    功能实现 功能:统计文本文件中所有单词出现的频率功能. 下面是要统计的文本文件 [/root/hadooptest/input.txt] foo foo quux labs foo bar quux ...

  4. Python读取SQLite文件数据

    近日在做项目时,意外听说有一种SQLite的数据库,相比自己之前使用的SQL Service甚是轻便,在对数据完整性.并发性要求不高的场景下可以尝试! 1.SQLite简介: SQLite是一个进程内 ...

  5. RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib

    使用Python构建Lib工程 可以用来开发Python Lib的IDE工具有很多,常见的有Pycharm,Eclipse with PyDev插件等,而且在RobotFramework官网中也已经提 ...

  6. Python编写守护进程程序

    Python编写守护进程程序思路 1. fork子进程,父进程退出通常,我们执行服务端程序的时候都会通过终端连接到服务器,成功连接后会加载shell环境,终端和shell都是进程,shell进程是终端 ...

  7. windows平台 python生成 pyd文件

    Python的文件类型介绍: .py       python的源代码文件 .pyc     Python源代码import后,编译生成的字节码 .pyo     Python源代码编译优化生成的字节 ...

  8. 【转】python编写规范——中标软件有限公司测试中心

    [转]python编写规范 一.说明 二.内容 1. 代码布局 1.1 缩进 1.2 表达式和语句中的空格 1.3 行的最大长度 1.4 空行... 1.5 编码... 2. 语句... 2.1 标准 ...

  9. python编写shell脚本详细讲解

    python编写shell脚本详细讲解 那,python可以做shell脚本吗? 首先介绍一个函数: os.system(command) 这个函数可以调用shell运行命令行command并且返回它 ...

  10. Python __init__.py 文件使用

    __init__.py的主要作用是: 1. Python中package的标识,不能删除 2. 定义__all__用来模糊导入 3. 编写Python代码(不建议在__init__中写python模块 ...

随机推荐

  1. NOIP模拟81

    T1 语言 解题思路 模拟即可,对于一个合法的句子直接判断每一个前缀和每一个后缀是否是合法的名词词组. 然后枚举动词的位置判断前后两段是否合法就好了. code #include<bits/st ...

  2. 一个问题:六位八段数码管(Verilog)

    [基本信息] 需求:verilog程序,显示任意六位字符或数值,包含点号,且能够按需点亮位数.(学习篇) 芯片型号:cyclone Ⅳ EP4CE10F17C8 数码管属性:六位.八段 [最终成果图] ...

  3. 很多人讲不明白HTTPS,但是我能

    很多人讲不明白HTTPS,但是我能 今天我们用问答的形式,来彻底弄明白HTTPS的过程 下面的问题都是 小明和小丽两个人通信为例 可以把小明想象成服务端,小丽想象成客户端 1. https是做什么用的 ...

  4. php基本语法与安装

            // 什么是PHP         //     PHP 是 后端语言的一种          //         主要作用就是实现数据交互          //          ...

  5. webpack配置css预处理

    webpack默认只支持js的打包,不支持其它类型,为了让它支持样式的打包就需要加载一些loader 打包css文件 在webpack中配置对应的loader 在入口js文件中通过import导入样式 ...

  6. 此计算机上不存在虚拟机管理服务(VMMS)。请确保已启用“Hyper-V 服务”功能。

    此计算机上不存在虚拟机管理服务(VMMS).请确保已启用"Hyper-V 服务"功能. 解决方法: 在主板BIOS 里开启VT. Intel Virtualization Tech ...

  7. VMWare配置处理器个数和实际电脑CPU核心线程数关系

    配置说明 处理器数量 :指CPU内核数量(例如:4C / 8C),并不是指CPU颗数. 每个处理的核心数量:指CPU中的线程(4C8T中的8T),并不是指核心(Core)数量. 示例配置 处理器数量 ...

  8. 关于 Jupyter Nbconvert 自定义 LaTeX 模板,中文兼容与格式设置,从 Notebook 构建 LaTeX PDF 文档

    目录 为什么会有这篇随笔的内容? 简述一下我遇到的问题 Nbconvert 转换 .ipynb 文件的基本方法 Jupyter Nbconvert 构建中文 \(\LaTeX\) 文档的痛点 Jupy ...

  9. Kubernetes(K8s)之Pod

    Pod介绍 Pod是K8s的最小调度单位 内部是一组Container容器,根容器Pause和其他业务容器 拥有唯一Pod IP 小贴士: 在生产环境中,极少单独Pod的情况 一般都是使用Deploy ...

  10. Linux设备模型:6、Bus

    作者:wowo 发布于:2014-4-15 19:21 分类:统一设备模型 原创文章,转发请注明出处.蜗窝科技,www.wowotech.net. 概述 在Linux设备模型中,Bus(总线)是一类特 ...