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>
Python编写html文件的更多相关文章
- python编写文件统计脚本
python编写文件统计脚本 思路:用os模块中的一些函数(os.listdir().os.path.isdir().os.path.join().os.path.abspath()等) 实现功能:显 ...
- [译]Python编写虚拟解释器
使用Python编写虚拟机解释器 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环 ...
- Hadoop:使用原生python编写MapReduce
功能实现 功能:统计文本文件中所有单词出现的频率功能. 下面是要统计的文本文件 [/root/hadooptest/input.txt] foo foo quux labs foo bar quux ...
- Python读取SQLite文件数据
近日在做项目时,意外听说有一种SQLite的数据库,相比自己之前使用的SQL Service甚是轻便,在对数据完整性.并发性要求不高的场景下可以尝试! 1.SQLite简介: SQLite是一个进程内 ...
- RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib
使用Python构建Lib工程 可以用来开发Python Lib的IDE工具有很多,常见的有Pycharm,Eclipse with PyDev插件等,而且在RobotFramework官网中也已经提 ...
- Python编写守护进程程序
Python编写守护进程程序思路 1. fork子进程,父进程退出通常,我们执行服务端程序的时候都会通过终端连接到服务器,成功连接后会加载shell环境,终端和shell都是进程,shell进程是终端 ...
- windows平台 python生成 pyd文件
Python的文件类型介绍: .py python的源代码文件 .pyc Python源代码import后,编译生成的字节码 .pyo Python源代码编译优化生成的字节 ...
- 【转】python编写规范——中标软件有限公司测试中心
[转]python编写规范 一.说明 二.内容 1. 代码布局 1.1 缩进 1.2 表达式和语句中的空格 1.3 行的最大长度 1.4 空行... 1.5 编码... 2. 语句... 2.1 标准 ...
- python编写shell脚本详细讲解
python编写shell脚本详细讲解 那,python可以做shell脚本吗? 首先介绍一个函数: os.system(command) 这个函数可以调用shell运行命令行command并且返回它 ...
- Python __init__.py 文件使用
__init__.py的主要作用是: 1. Python中package的标识,不能删除 2. 定义__all__用来模糊导入 3. 编写Python代码(不建议在__init__中写python模块 ...
随机推荐
- Autolayout 下面的 Layer.cornerRadius
一.问题: 如何在Autolayout模式中设置一个UIView的layer.cornerRadius? 二.解决: UiView的layer目前还不支持Autolayout设置约束,因此如果想设置一 ...
- 鸿蒙HarmonyOS实战-Web组件(Cookie及数据存储)
前言 Cookie是一种存储在用户计算机上的小文本文件,用于在用户访问网站时存储和提取信息.它由网站服务器发送到用户的浏览器,并存储在用户的计算机上.每当用户访问该网站时,浏览器将发送该Cookie回 ...
- Cmockery学习
什么是cmockery? 是一个轻量级的C语言单元测试框架 什么是单元测试? 单元测试就是测试一个系统的最小实现单元,往往是函数 示例解析 #include <stdarg.h> #inc ...
- 和必应对话之mysql分区分表
mysql单表数据量太大 导致查询缓慢问题如何解决 您好,这是Bing.根据网络搜索结果,mysql单表数据量太大导致查询缓慢的问题有以下几种可能的解决方案: 使用索引.索引是一种数据结构,可以帮助数 ...
- Hive 在工作中的调优总结
总结了一下在以往工作中,对于Hive SQL调优的一些实际应用,是日常积累的一些优化技巧,如有出入,欢迎在评论区留言探讨~ 一.EXPLAIN 查看执行计划 二.建表优化 2.1 分区 分区表基本操作 ...
- 一文搞懂 ARM 64 系列: 寄存器
ARM 64中包含多种寄存器,下面介绍一些常见的寄存器. 1 通用寄存器 ARM 64包含31个64bit寄存器,记为X0~X30. 每一个通用寄存器,它的低32bit都可以被访问,记为W0~W30. ...
- The remote name could not be resolved
HTTP The remote name could not be resolved HTTP Status:NameResolutionFailure
- SQL SERVER 2012的安装
1.将光盘镜像用虚拟光驱加载(WIN10自带虚拟光驱) 2.双击setup.exe 3.选择"安装"-"全新 SQL Server 独立安装或向现有安装添加功能" ...
- Mybatis-MySQL 中使用IFNUL
Mybatis-MySQL 中使用IFNULL(p1,p2)函数但是有一些需要注意的地方. 假设数据 title: student id name age 1 Ann 18 2 Bom 19 3 He ...
- Spring源码——详细流程图(超详细)
Spring源码流程图