标签:context htm log 表示 item ext 一起 使用 格式
前言:django的模板语法基本和flask的jinja2基本一样。下面比较一下两个模板语法的区别。
django:{{ 变量 }} # 因为django只有一个context返回,全部数据都集中在一起
jinja2:{{ 对象.变量 }}
django:{{ 列表.0 }}
jinja2:{{ 列表[0] }}
django:{{ 字典.key }}
jinja2:{{ 字典[key] }}或者{{ 字典.key }}
django:
{% for item in 列表 %} {{forloop.counter}} <1-- 表示当前是第几次循环,从1开始 --> {{forloop.counter0}} <!-- 表示当前是第几次循环,从0开始 -->{% endfor %}
jinja2:
{% for item in 列表 %} {{loop.index}} <1-- 表示当前是第几次循环,从1开始 --> {{loop.index0}} <!-- 表示当前是第几次循环,从0开始 -->{% endfor %}
django:
{% for item in 列表 %} {{forloop.counter}} <1-- 表示当前是第几次循环,从1开始 --> {{forloop.counter0}} <!-- 表示当前是第几次循环,从0开始 --> {% empty %} 列表为空或不存在时执行此逻辑 {% endfor %}
jinja2:无
django:{% if a==1 %} # 错误
{% if a == 1 %} # 正确
jinja2:两种都可以
django:
变量|过滤器:参数
jinja2:变量 | 过滤器(参数) 常见的jinja2过滤器:https://www.cnblogs.com/chichung/p/9775099.html
django的常见几个过滤器如下:
- safe,禁用html转义(显示html标签样式,而不是字符串)
- length,长度,返回字符串包含字符的个数,或列表、元组、字典的元素个数。
default,默认值,如果变量不存在时则返回默认值。
data|default:‘默认值‘
date,日期,用于对日期类型的值进行字符串格式化,常用的格式化字符如下:
- Y表示年,格式为4位,y表示两位的年。
- m表示月,格式为01,02,12等。
- d表示日, 格式为01,02等。
- j表示日,格式为1,2等。
- H表示时,24进制,h表示12进制的时。
- i表示分,为0-59。
- s表示秒,为0-59。
value|date:"Y年m月j日 H时i分s秒"
django:
{% comment %} ... {% endcomment %}
django:
可以使用 block.super
来包含父模板的块中定义的内容,如下
{% block 名称 %} 子模板的内容 {{ block.super }} 显示父模板中block的内容 {% endblock %}
{{ block.super }}——引用上级代码块在其基础上进行一些修改
flask:
同样原理,不过用的是{{ super() }}
标签:context htm log 表示 item ext 一起 使用 格式
原文地址:https://www.cnblogs.com/chichung/p/9898017.html