Django模板语言-Tags
Posted wtil
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django模板语言-Tags相关的知识,希望对你有一定的参考价值。
Tags
- Tags
# 普通for循环 <ul> {% for user in user_list %} <li>{{ user.name }}</li> {% endfor %} </ul>
for循环可用的一些参数:
Variable Description forloop.counter
当前循环的索引值(从1开始) forloop.counter0
当前循环的索引值(从0开始) forloop.revcounter
当前循环的倒序索引值(从1开始) forloop.revcounter0
当前循环的倒序索引值(从0开始) forloop.first
当前循环是不是第一次循环(布尔值) forloop.last
当前循环是不是最后一次循环(布尔值) forloop.parentloop
本层循环的外层循环 for ... empty
# 如果user_list 里面元素为0个的时候执行 empty <ul> {% for user in user_list %} <li>{{ user.name }}</li> {% empty %} <li>空空如也</li> {% endfor %} </ul>
-
if判断
# if,elif和else {% if user_list %} 用户人数:{{ user_list|length }} {% elif black_list %} 黑名单数:{{ black_list|length }} {% else %} 没有用户 {% endif %}
# 当然也可以只有if和else {% if user_list|length > 5 %} 七座豪华SUV {% else %} 黄包车 {% endif %} # if语句支持 and 、or、==、>、<、!=、<=、>=、in、not in、is、is not判断。
-
with
# 定义一个中间变量,多用于给一个复杂的变量起别名。 # 注意等号左右不要加空格。 {% with total=business.employees.count %} {{ total }} employee{{ total|pluralize }} {% endwith %} # 或 {% with business.employees.count as total %} {{ total }} employee{{ total|pluralize }} {% endwith %}
-
csrf_token
这个标签用于跨站请求伪造保护。
在页面的form表单里面写上{% csrf_token %}
-
注意事项
- Django的模板语言不支持连续判断,即不支持以下写法:
{% if a > b > c %} ... {% endif %}
- Django的模板语言中属性的优先级大于方法
def xx(request): d = {"a": 1, "b": 2, "c": 3, "items": "100"} return render(request, "xx.html", {"data": d})
如上,我们在使用render方法渲染一个页面的时候,传的字典d有一个key是items并且还有默认的 d.items() 方法,此时在模板语言中:
{{ data.items }}
默认会取d的items key的值。
- Django的模板语言不支持连续判断,即不支持以下写法:
以上是关于Django模板语言-Tags的主要内容,如果未能解决你的问题,请参考以下文章
Python大神 - Django(深层学习)-- 模板语言