学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承

  1. Template控制语句

If,for 语法:{%  %}

  1. if

     

    1. {% if %}{% endif %}
    2. If标签计算一个变量值,如果是ture,即为存在,不为空并且不是false的boolean值,系统则会显示{% if %}和{% endif %}中的所有内容。

学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承

 

{% if %}标签接收and,or或者not来测试多个变量值或者否定一个变量值。

{% if %}标签不允许同一标签里同时出现多个and和or,否则容易产生逻辑分歧。

  1. for

{% for %}标签允许你按顺序遍历一个序列中的各个元素,每次循环模板系统都会渲染{% for %}和{% endfor %}之间的所有内容。

学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承

 

 

反序列for:

 

学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承

forloop.counter0 有序的从0开始计数

 

 

学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承

forloop.counter 有序的从1开始计数

 

 

学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承

revcounter.counter 倒序的从1开始计数

 

 

学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承

revcounter.counter 倒序的从0开始计数

 

 

学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承

forloop.first 判断循环是不是第一次

 

学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承

  1. Template常用标签
  1. csrf_token

{% csrf_token %}

 

学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承

  1. url

 

  1. with

学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承

学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承

 

  1. Template自定义过滤器
  1. 在app中创建templatetags包(必须的)
  2. 创建任意.py文件
  3. 在使用自定义simple_tag和filter的html文件中导入之前创建的my_tags.py:

{% load my_tags %}(加载以后,需要重启django项目,才可以)

  1. 使用simple_tag和filter调用方式不一样
  1. 装饰器register.filter

只能单个参数,可以使用if或者for

学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承

 

 

  1. 装饰器register.simple_tag

多个参数,但是就不能使用if或for了

学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承

 

 

  1. 模板继承

 

 

 

学神python全栈学习笔记---4 模板语言控制语句,自定义标签,继承