前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 使用jinja2对html模板文件进行数据替换

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

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

背景:执行完自动化测试后,希望将获取到的测试结果数据替换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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档