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模块 ...
随机推荐
- itest(爱测试)开源接口测试&敏捷测试&极简项目管理 6.6.6 发布,新增接口mock
(一)itest 简介及更新说明 itest 开源敏捷测试管理,testOps 践行者,极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock 6合1,又有丰富的统计分析.可按测试包 ...
- golang 的 net/http 和 net/rpc 的区别, rpc 效率比 http 高?
在Go语言中,net/http 和 net/rpc 是两个不同的包,它们分别用于实现不同的网络通信模式: net/http: net/http 包主要用于构建Web服务和客户端,它实现了HTTP协议, ...
- redux中集成immutable.js
安装redux-immutable redux中利用combineReducers来合并reducer并初始化state,redux自带的combineReducers只支持state是原生js形式的 ...
- 童年神机小霸王(七) Mapper
首发公号:Rand_cs,求关注支持 Mapper mapper,这个概念来源于 memory mapping,又叫做 Memory Management Circuit,它是解决地址映射的一种电路, ...
- LeetCode 719. 找出第 k 小的距离对 (Java)
题目: 给定一个整数数组,返回所有数对之间的第 k 个最小距离.一对 (A, B) 的距离被定义为 A 和 B 之间的绝对差值. 示例 1: 输入:nums = [1,3,1]k = 1输出:0 解释 ...
- c++ 线程使用
C++中的线程可以通过标准库提供的thread类实现.该类提供了创建和管理线程的方法和函数. 创建线程的方法: #include <thread> ... // 创建一个线程,其执行函数为 ...
- Debian安装Redis服务
Debian安装Redis服务 安装命令 apt-get update apt-get install redis-server 等待安装完成 配置密码 编辑Redis的配置文件/etc/redis/ ...
- 记录用C#写折半查找算法实现
折半查找算法 前言 最近要考试了,重新回顾一下之前学的算法,今天是折半查找,它的平均比较次数是Log2 n 思想 给定一个有序数组A[0..n-1],和查找值K,返回K在A中的下标. 折半查找需要指定 ...
- STM32 CubeMX 学习:000-搭建开发环境
背景 了解了 STM32 标准库以后,为了紧跟发展的潮流,我们以 CubeMx为基础 开始进行 Hal(Hardware Abstract Layer, 硬件抽象层)库的学习. CubeMx 是一个 ...
- P2045 方格取数加强版题解
题目链接:P2045 方格取数加强版 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目: 出一个 n*n 的矩阵,每一格有一个非负整数 A{i,j}且A{i,j} <=10 ...