One - One Code All

Blog Content

python使用JiaJa2通过模板生成文本文件

Python   2019-03-16 22:43:24

使用JiaJa2通过模板生成文本文件

JiaJa2作为Flask框架中的模板系统被广泛使用,可以快速生成HTML文件;


JinJa2也可以单独使用通过模板快速生成自己想要的文件;


python文件调用模板进行渲染的基本使用方法如下:

from jinja2 import loaders, FileSystemLoader, Environment

# 指定模板文件搜索的开始位置
TemplateLoader = FileSystemLoader(searchpath="./", encoding='utf-8')
TemplateEnv = Environment(loader=TemplateLoader)
# 这里的文件位置是以searchpath作为基准的,而不是当前文件夹.
template = TemplateEnv.get_template("./test.html")
html = template.render({"config": config})


需要注意的是:

如果传到模板文件的变量config是一个列表(字典)等容器类型;

当config作为整体被使用时,渲染之后不会进行decode,造成的结果就是中文显示不出来,解决办法是在模板文件中将config中的元素一一取出;


模板文件正确写法

{% for i in config %}
    i
{ endfor }

有问题的写法

{{config}}  //直接渲染列表整体将造成里面的中文无法正常显示


JiaJa2常用语法:


表示变量

{{变量}}


语句


{% for i in 变量名 %}
    {% if loop.index<10 %}
        i
    {% endif %}
{% endfor %}


for循环中经常会结合的变量

写法 含义

loop.index 当前迭代的索引(从1开始)

loop.index0 当前迭代的索引(从0开始)

loop.first 是否是第一次迭代,返回True/False

loop.last 是否是最后一次迭代,返回True/False

loop.length 序列的长度



上一篇:django中的objects.get和objects.filter方法的区别
下一篇:python中的jinja2模板

The minute you think of giving up, think of the reason why you held on so long.