学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承
- Template控制语句
If,for 语法:{% %}
- if
- {% if %}{% endif %}
- If标签计算一个变量值,如果是ture,即为存在,不为空并且不是false的boolean值,系统则会显示{% if %}和{% endif %}中的所有内容。
{% if %}标签接收and,or或者not来测试多个变量值或者否定一个变量值。
{% if %}标签不允许同一标签里同时出现多个and和or,否则容易产生逻辑分歧。
- for
{% for %}标签允许你按顺序遍历一个序列中的各个元素,每次循环模板系统都会渲染{% for %}和{% endfor %}之间的所有内容。
反序列for:
forloop.counter0 有序的从0开始计数
forloop.counter 有序的从1开始计数
revcounter.counter 倒序的从1开始计数
revcounter.counter 倒序的从0开始计数
forloop.first 判断循环是不是第一次
- Template常用标签
- csrf_token
{% csrf_token %}
- url
- with
- Template自定义过滤器
- 在app中创建templatetags包(必须的)
- 创建任意.py文件
- 在使用自定义simple_tag和filter的html文件中导入之前创建的my_tags.py:
{% load my_tags %}(加载以后,需要重启django项目,才可以)
- 使用simple_tag和filter调用方式不一样
- 装饰器register.filter
只能单个参数,可以使用if或者for
- 装饰器register.simple_tag
多个参数,但是就不能使用if或for了
- 模板继承