Python之jinja2模板引擎生成HTML
Python之jinja2模板引擎生成HTML
jinja2介绍
Jinja2 是一个现代的,设计者友好的,仿照 Django 模板的 Python 模板语言。 它速度快,被广泛使用,并且提供了可选的沙箱模板执行环境保证安全,关于jinja2的文档介绍
安装方法
pip3 install jinja2
模板文件
接下来制作一个模板文件template.html,直接给代码
巡检报告
报告综述
巡检地点 : 机房 开始时间 : {{start_time}} 结束时间 : {{stop_time}}
检测结果 : *** 其它信息:***
详细信息
机柜号
检测时间
检测结果
详细信息
图片路径
{% for item in body %}
{{ item.cabID }}
{{ item.shijian }}
{{ item.final_result }}
{{ item.info }}
图片
{% endfor%}
测试方法
我们写一个脚本程序,用来调用上述模板,生成指定的结果文件result.html
from jinja2 import Environment, FileSystemLoader
def generate_html( body, starttime, stoptime):
env = Environment(loader=FileSystemLoader('./'))
template = env.get_template('template.html')
with open("result.html",'w+') as fout:
html_content = template.render(start_time=starttime ,
stop_time=stoptime,
body=body)
fout.write(html_content)
if __name__ == "__main__":
body = []
result = {'cabID':1, 'shijian':2019, 'final_result':"正常", 'info':"无",
'image_path':"test.jpg"}
body.append(result)
generate_html(body, 2019, 2019)
上述使用的是超链接的形式进行图片显示,实际使用时不太方便,接下来使用锚点的方法来将图片和结果显示在一个页面,代码如下
巡检报告
报告综述
巡检地点 : 机房 开始时间 : {{start_time}} 结束时间 : {{stop_time}}
检测结果 : *** 其它信息:***
详细信息
机柜号
检测时间
检测结果
详细信息
图片路径
{% for item in body %}
{{ item.cabID }}
{{ item.shijian }}
{{ item.final_result }}
{{ item.info }}
{{ item.shijian }}
{% endfor%}
图片显示
{% for item in body %}
{{ item.shijian }}
{% endfor%}
运行结果显示如下: