Django模板语言 Tags使用详解

时间:2021-05-22

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的值。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章