Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python 使用jinja2对html模板文件进行数据替换

python 使用jinja2对html模板文件进行数据替换

原创
作者头像
小白will
发布于 2019-02-18 09:11:24
发布于 2019-02-18 09:11:24
5.4K0
举报
文章被收录于专栏:学习学习

背景:执行完自动化测试后,希望将获取到的测试结果数据替换html模板文件,以生成测试报告。

html模板文件
html模板文件

解决方案:使用python语言的jinja2组件,可以对模板文件进行各种数据处理。

参考链接:

http://docs.jinkan.org/docs/jinja2/intro.html

https://www.jianshu.com/p/3bd05fc58776

处理过程:

1-编写html模板文件,包含需要替换的变量及相关模板控制语句

2-将需要动态替换的数据,以json的形式存储在变量中

3-使用jinja2组件相关功能,读取模板文件并设置变量对应的value


相关代码:

1-html模板文件

if控制语句:

循环控制语句:

2-获取json形式的结果数据(以下仅提供如何转换成json数据,具体数据值的获取依业务而来)

def crtJsonData_case(id,status,caseName,errorMessage,caseinfo,caseSpendTime):

data = {

'id': id,

'status': status,

'caseName': caseName,

'errorMessage': errorMessage,

'caseinfo': caseinfo,

'caseSpendTime': caseSpendTime

}

return json.dumps(data)

3-使用jinja2组件进行模板替换

env = Environment(loader=FileSystemLoader('d://'))

tpl = env.get_template('template.html')

with codecs.open('report.html', 'w', encoding='utf8') as fout:

render_content = tpl.render(spendTime=summaryjsondata['spendTime'],jobRst=summaryjsondata['jobRst'],\

sucRate=summaryjsondata['sucRate'],testcase_suc=summaryjsondata['testcase_suc'],\

testcaseTotalRun=summaryjsondata['testcaseTotalRun'],falseCount=summaryjsondata['falseCount'],datalist=casejsondata)

fout.write(render_content)


完整的python脚本会读取template.html文件,并将测试结果数据替换模板文件生成新的文件report.html。生成的report.html文件如下所示。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Jinja2用法总结
渲染模版时有两种传递参数的方式:用 var='value' 传递一个参数;使用字典组织多个参数,并且加两个*号转换成关键字参数传入。
步履不停凡
2019/09/11
2.2K0
python 利用jinja2模板生成html代码实例
这篇文章主要介绍了python 利用jinja2模板生成html代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
stys35
2020/08/12
2.1K0
浅谈Flask模板注入攻击
​ 由于最近一直在学二进制,所以web方面时间就不是很充足了,在buuoj上做了几道web,其中有一道flask(jinja2)的SSTI,之前也接触过,所以今天就来复现下flask ssti,这里推荐一个学习环境
ly0n
2020/11/04
1.8K0
浅谈Flask模板注入攻击
猫头虎分享:Python库 Jinja2 的简介、安装、用法详解入门教程
今天有粉丝问猫哥:“如何使用Jinja2进行Python模板渲染?”这是一个非常常见的问题,特别是在开发Web应用时。Jinja2是一个强大的模板引擎,能让你的代码更清晰、更易维护。本文将深入探讨Jinja2的安装、用法,以及常见Bug的解决方案,帮助你快速上手这个工具。
猫头虎
2024/09/27
6950
猫头虎分享:Python库 Jinja2 的简介、安装、用法详解入门教程
【基于jinja2模版引擎自定义自动化测试报告模版】
在自动化测试领域,虽然 Pytest 测试框架提供了多种现成的测试报告生成工具,如 Pytest-html 和 Allure,但这些工具可能无法完全满足特定的测试需求。本文将介绍一种自定义测试报告生成的方法,并提供相应的代码实现。通过这种方法,你可以根据项目的具体需求,灵活地定制测试报告的内容和格式,从而更有效地展示测试结果和分析数据。
用户10931828
2025/01/07
1160
【基于jinja2模版引擎自定义自动化测试报告模版】
用 Python 的 Template 类生成文件报告
很多时候,我发现自己需要进行生成报告、输出文件或字符串的任务。它们或多或少都会遵循某种模式,通常这些模式是如此相似,以至于我们希望拥有一个可以重用并直接输入数据的模板。幸运的是,Python提供了一个可以帮助我们的类:string.Template。
Python数据科学
2021/01/28
1.4K0
用 Python 的 Template 类生成文件报告
慕课网Flask高级编程实战-7.静态文件、模板、消息闪现与Jinja2
Flask访问静态文件非常简单,只需要在项目根目录建立static文件夹。将静态资源文件放入static下即可。访问的时候访问http://ip:port/static/fileName即可。
Meet相识
2018/09/12
9630
慕课网Flask高级编程实战-7.静态文件、模板、消息闪现与Jinja2
带你认识 flask 的模板
在终端会话中设置环境变量FLASK_APP=microblog.py,然后执行flask run命令来运行应用。包含这个应用的Web服务启动之后,你可以通过在Web浏览器的地址栏中键入URL http://localhost:5000/ 来验证。
公众号---人生代码
2019/11/07
1.1K0
带你认识 flask 的模板
Django-手撸简易web框架-实现动态网页-wsgiref初识-jinja2初识-python主流web框架对比-00
原来请求首行的 GET 后面跟的就是请求我们想要信息(/index 首页、/home 家)
suwanbin
2019/09/26
1.5K0
Django-手撸简易web框架-实现动态网页-wsgiref初识-jinja2初识-python主流web框架对比-00
Python Flask 编程 | 连载 06 - Jinja2 语法
上下文处理器 context_processor 可以在模板上下文中添加新的内容,添加的内容可以是变量,也可以是函数。
RiemannHypothesis
2022/09/26
8670
Python Flask 编程 | 连载 06 - Jinja2 语法
Flask模板和静态文件(一)
lask是一款基于Python的Web框架,它支持使用模板和静态文件来构建Web应用程序。模板和静态文件可以帮助我们轻松地组织和管理Web应用程序中的视图和资源。
堕落飞鸟
2023/05/05
1.2K1
python flask web开发实战 Jinja2模板
templates/index.html <h1>Hello World!</h1> templates/user.html <h1>Hello, {{ name }}!</h1>
用户5760343
2019/07/05
7480
Jinja2语法小记
如果user为传入模板中的字典变量,则我们可通过”.“获取它的键值。 eg:user.username user.username等价于user[‘username’]
Cloud-Cloudys
2020/07/06
1.6K0
Flask(8)- jinja2 模板入门
如果用户已经登录:变量 login 为真、变量 name 为 tom,模板被渲染成如下的 html 文件
小菠萝测试笔记
2021/07/14
1.4K0
Flask(8)- jinja2 模板入门
使用 Pandas, Jinja 和 WeasyPrint,轻松创建一个 PDF 报表
我们都知道,Pandas 擅长处理大量数据并以多种文本和视觉表示形式对其进行总结,它支持将结构输出到 CSV、Excel、HTML、json 等。但是如果我们想将多条数据合并到一个文档中,就有些复杂了。例如,如果要将两个 DataFrames 放在一张 Excel 工作表上,则需要使用 Excel 库手动构建输出。虽然可行,但并不简单。本文将介绍一种将多条信息组合成 HTML 模板,然后使用 Jinja 模板和 WeasyPrint 将其转换为独立 PDF 文档的方法,一起来看看吧~
周萝卜
2022/02/10
2.1K0
使用 Pandas, Jinja 和 WeasyPrint,轻松创建一个 PDF 报表
pycharm jinja2_Python django
{#This is jinja code{% for file in filenames %}
全栈程序员站长
2022/11/01
1.5K0
Python 模板渲染库 yaml 和 jinja2 的实战经验分享
之前公司的项目部署主要使用的是 ansible 编排,说到 ansible 就不得不提到强大的 jinja 语法了。而后来公司又让各个服务把部署方式改成 SDK 安装的方式,这个转变就引发了一些重复利用文件的问题,最后的解决办法就是使用 yaml 和 jinja2 将原本属于 ansible 的模板文件充分利用起来了。这篇文章就来分享一下我在工作中使用到的 jinja 用法。
Hopetree
2022/09/26
3.3K0
Google开源html模板库ctemplate的完整使用示例
ctemplate是Google开源的一个C++版本html模板替换库。有了它,在C++代码中操作html模板是一件非常简单和高效的事。通过本文,即可掌握对它的简单使用。
一见
2018/08/07
2.2K0
Python Flask 编程 | 连载 08 - Jinja2 过滤器
重新启动应用,浏览器访问 /filter,页面数据经过管道符 | 的过滤,显示结果如下:
RiemannHypothesis
2022/09/26
5940
Python Flask 编程 | 连载 08 - Jinja2 过滤器
Flask 中的Jinja2模板引擎
在 Web 项目中,前端的显示效果是通过 HTML 语言来实现的,后端的视图函数将数据或模板文件返回给前端。
Python碎片公众号
2021/02/26
1.9K0
Flask 中的Jinja2模板引擎
推荐阅读
相关推荐
Jinja2用法总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档