jinja2学习使用
壹、jinja2是什么
编辑一个模板文件,可以用来自动生成HTML、cpp、py等代码
贰、jinja2安装
pip install jinja2
叁、jinja2使用
1. 语法,共三种
{% 这是控制代码 %}
{{ 这是变量 }}
{# 这是注释 #}
2. 过滤器
过滤器 | 说明 |
---|---|
safe | 渲染时不转义 |
capitalize | 串的首字母大写 |
lower | 转换成小写 |
upper | 转换成大写 |
title | 串中每个单词的首字母大写 |
trim | 删除首尾空格 |
striptags | 删除所有HTML标签 |
join | 拼接多个词 |
replace | 替换字符串的值 |
round | 四舍五入 |
int | 串转为整型 |
3. 控制语句,需要end来结束一个控制语句
(1)分支语句
{% if a %}
aaa
{% elif b %}
bbb
{% endif %}
(2)循环
{% for idx in arr %}
idx
{% endfor %}
(3)宏
{% macro input(a=a1,b=b1) %}
a = {{a1}}, b = {{b1}}
{% endmacro %}
4. 模板继承
5. jinja2渲染
(1)Environment对象:用来加载模板,支持两种加载方式:
PackageLoader:包加载器
FileSystemLoader:文件系统加载器
(2)举例:
from jinja2 import PackageLoader, FileSystemLoader, Environment
{# 1. PackageLoader #}
env1 = Environment(loader = PackageLoader('python_project','templates'))
tmpl1 = env1.get_template('tmpl.html')
tmpl1.render(name = 'Li', sex = 'F')
{# 2. FileSystemLoader #}
env2 = Enviornment(loader = FileSystemLoader('dir'))
tmpl2 = env2.get_template('tmpl.html')
tmpl2.render(name = 'Li', sex = 'F')
肆、缩进!!!
这个缩进真的是折磨死人了