概要
Jinja2 是一個(gè)現(xiàn)代的每界,設(shè)計(jì)者友好的捅僵,仿照 Django 模板的 Python 模板語(yǔ)言。 它速度快眨层,被廣泛使用庙楚,并且提供了可選的沙箱模板執(zhí)行環(huán)境保證安全
特性
- 沙箱中執(zhí)行
- 強(qiáng)大的 HTML 自動(dòng)轉(zhuǎn)義系統(tǒng)保護(hù)系統(tǒng)免受 XSS
- 模板繼承
- 及時(shí)編譯最優(yōu)的 python 代碼
- 可選提前編譯模板的時(shí)間
- 易于調(diào)試。異常的行數(shù)直接指向模板中的對(duì)應(yīng)行趴樱。
- 可配置的語(yǔ)法
遇到的問題及解決方法
想把變量分隔符{{}}作為普通字符串輸出的方法
方法1:在變量分隔符中( {{ )使用變量表達(dá)式輸出 {{ '{{' }}
from jinja2 import Template
source = "{{name}} {{ '{{' }}name{{ '}}' }}"
template = Template(source)
print (template.render(name='atp'))
output -> atp {{name}}
方法2:使用raw語(yǔ)句
from jinja2 import Template
source = "{{name}} {% raw %}{{name}}{% endraw %}"
template = Template(source)
print (template.render(name='atp'))
output -> atp {{name}}