jinja2 模板,jinja2中文文档
python开发前端和后端不分离web项目时,前端通常使用jinja2模板语言。现在介绍一下jinja2模板语言的基本语法。
普通变量变量表示
格式:{ {变量名}}
@ app . route(/strtest )def test():str 1= ASD return render _ template( temp 1 . html ,str 1=str 1)body h1 flask/h1 p { { str 1 } }/p/body
循环控制
格式
当{% else %}列表为空时,执行默认语句块{% endfor %}测试:
@ app . route(/test )def test():list 1=[]return render _ template( temp 1 . html ,list 1=list 1){ % for item in list 1% } { { item } } { % else % } { aaaaaaaaa } { % end for % }
@ app . route(/test )def test():list 1=[1,2,3]return render _ template( temp 1 . html ,list1=list1)
条件if条件判断
格式:
{% if condition 1 %}语句块1{% elif condition 2 %}语句块2{% else %}不满足所有条件{% endif %}测试。
@ app . route(/test )def test():list 1=[ sad SDS , sadasdada , ssdsdsdfgg , sdsa , s ]return render _ template( temp 1 . html ,list 1=list 1)p { % for item in list 1% } { % if item length 8% } { { item } } br { % elif item length 6% } { { wwwwwwwwww www } } br { % else % } { QQ QQ } } br { % endif
过滤器可以通过过滤器修改变量。过滤器通过管道符号()与变量分开,并且可以在括号中包含可选参数。一个变量可以链接多个过滤器。一个滤波器的输出可以应用于下一个滤波器。
官方过滤器API:http://jinja.pocoo.org/docs/2.10/templates/#builtin-filters
过滤器格式:{ {变量过滤器1过滤器2… }}
一.字符串过滤器
把hello变成大写字母
{{ helloupper }}反转“hello”
{{ helloreverse }}将“hello”的第一个字母大写
{{ hellotitle}}将 hello 大写,然后反转。
{{ helloupperreverse }}下面列出了常见的过滤器。
说明滤镜safe是禁止转义的,渲染时不会转义特殊字符。将第一个字母大写,将其他字母小写,将所有字母大写标题大写,将每个单词的第一个字母修剪为大写,删除前导和尾随空格,striptags,删除所有HTML标签,join,将多个值拼接成一个字符串,Python-like join()函数replace将字符串的值舍入为整数舍入为int类型II。列表过滤器
获取列表的第一个元素。
{{ list1first }}获取列表中的最后一个
{{ list1last}}排序
{{ list1sort }}列表总和
{{ list1sum}}计算列表的长度
{{ list1length}} III。自定义过滤器
例如,使用倒排列表自定义过滤器。
第一种方法,装修法。
@ app . template _ filter( list reverse )def list _ reverse(li:list):Li . reverse()返回Li第二个方法,通过app实例添加。
def list _ reverse(Li:list):Li . reverse()return liapp . add _ template _ filter(list _ reverse, lireverse )