使用JiaJa2經過模板生成文本文件

使用JiaJa2經過模板生成文本文件

JiaJa2做爲Flask框架中的模板系統被普遍使用,能夠快速生成HTML文件;javascript

JinJa2也能夠單獨使用經過模板快速生成本身想要的文件;html

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中的元素一一取出;java

  • 模板文件正確寫法
{% 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 序列的長度
相關文章
相關標籤/搜索