[TOC=1,5] >[success] # 自带过滤模板 针对return 返回来的数值进行操作,对views返回个html页面的数据进行操作 >[danger] ##### upper 小写变成大写 ~~~ value1="aBcDe" {{ value1|upper }} ~~~ 打印结果ABCDE >[danger] ##### add 变量求和 ~~~ value2=2 {{ value2|add:3 }} ~~~ 打印结果5 >[danger]##### date页面展示的时间格式 ~~~ import datetime value4=datetime.datetime.now() {{ value4|date:'Y-m-d' }} ~~~ 打印结果2018-2-9 >[danger]##### cut 去掉字符串中指定元素 ~~~ value3='he llo wo r ld' {{ value3|cut:' ' }} ~~~ 打印结果helloworld >[danger] ##### default列表不存在时设置默认 ~~~ value5=[] {{ value5|default:'空的' }} ~~~ 打印结果空的 >[danger] ##### safe 允许展示用户的html代码 ~~~ {{ value6|safe }} ~~~ >[danger] ##### striptags 去掉标签只展示内容 ~~~ value6='<a href="#">跳转</a>' {{ value6|striptags }} ~~~ 打印结果 `跳转` >[danger]##### filesizeformat 展示文件或变量的大小 ~~~ value7='1234' {{ value7|filesizeformat }} ~~~ 打印结果1.3KB >[danger] ##### first 显示第一个 ~~~ value7='1234' {{ value6|first }} ~~~ 打印结果1 >[danger] ##### length 显示长度 ~~~ value7='1234'' {{ value6|length }} ~~~ 打印结果4 >[danger] ##### slice切片 ~~~ value7='1234' {{ value6|slice:-1}} ~~~ 打印结果1.3KB >[success] # 自带的{% tags %} 标签 >[danger] ##### forloop.counter 计数类型 * {{ forloop.counter }}计数,生成序号从1开始 ~~~ {% for item in todo_list %} <p>{{ forloop.counter }}: {{ item }}</p> {% endfor %} ~~~ * {{ forloop.counter0 }}计数,生成序号从0开始 * {{ forloop.revcounter}}计数,生成序号倒叙 * {{ forloop.revcounter0 }}计数,生成序号倒叙0收尾 * {{ forloop.first}}当第一次循环时值为True ~~~ {% for object in objects %} {% if forloop.first %} <li class="first"> {% else %} <li> {% endif %} {{ object }} </li> {% endfor %} ~~~ >[danger] ##### {% if %} 条件判断如果 ~~~ 注明: 1.变量和判断之间要有空格例,结尾要用end结束 2.{% if %} 标签接受and,or或者not来测试多个变量值或者否定一个给定的变量 {% if %} 标签不允许同一标签里同时出现and和or,否则逻辑容易产生歧义,例如下面的标签是不合法的: {% if obj1 and obj2 or obj3 %}报错 {% if num>=100%} 报错 {% if num >= 100%} 正确 ~~~ >[danger] ##### {%for%}循环遍历 ~~~ {% for %}标签允许你按顺序遍历一个序列中的各个元素, 每次循环模板系统都会渲染{% for %}和{% endfor %}之间的所有内容 ~~~ >[danger] ##### {%csrf_token%} ~~~ 用于生成csrf_token的标签,用于防治跨站攻击验证。 注意如果你在view的index里用的是render_to_response方法, 不会生效 其实,这里是会生成一个input标签,和其他表单标签一起提交给后台的 ~~~ >[danger] ##### {% url '别名' %} ~~~ {% url %}: 引用路由配置的url name属性的名字 ~~~ >[danger] ##### {% verbatim %} 正常显示,不进行转换 ~~~ {% verbatim %} {{ hello }} {% endverbatim %} ~~~ >[danger] ##### autoescape off 允许展示用户的html代码 ~~~ value6='<a href="#">跳转</a>' {% autoescape off %} {{ value6 }} {% endautoescape %} ~~~