python3 模板库_python3之Django内置模板标签和过滤器

一、模板标签

内置标签:

1、autoescape

控制当前的自动转义行为,此标记采用on或者off作为参数,并确定自动转义是否在块内有效。该块以endautoescape结束标签关闭。

views:defindex(request):return render(request,'app02/index.html',{'title':'mypage','user':'

  • dd
'})

html:

{ { user }}#默认为不转义#}

{ { user|safe }} #转义HTML标签#}

{% autoescape on %} #转义HTML标签后,按原样输出#}

转义:{ { user }}

{% endautoescape %}
{% autoescape off %}

不转义:{ { user }}

{% endautoescape %}outing:

  • dd
dd

转义:

  • dd
不转义:

dd

2、block

定义可以被子模板覆盖的块,为模板继承时使用

3、comment

注释一段代码,标签不能嵌套

4、cycle

多次循环迭代,给定的值,每次遇到此标签就会生成一个参数对应第一个,如此类推,如循环完没有参数了则继续从头开始循环。

  • {% cycle 'one' 'two' 'three' 'four' as infocycle %}
  • {% cycle infocycle %}
  • {% cycle infocycle %}
  • {% cycle infocycle %}
  • {% cycle infocycle %}
  • {% cycle infocycle %}
  • {% cycle infocycle %}

#outing

one

two

three

four

one

two

three

可以使用多个模板变量,也可以使用变量加字符串的形式混合使用。

views:

def dome(request):

info = ['html','jques','dome']

row = {'one':'python','two':'javascript','three':'css'}

return render(request,'app02/dome.html',{'info':info,'row':row})

html:

  1. {% cycle info.0 info.1 info.2 'TOT' row.one row.three row.two as twovariable %}
  2. {% cycle twovariable %}
  3. {% cycle twovariable %}
  4. {% cycle twovariable %}
  5. {% cycle twovariable %}
  6. {% cycle twovariable %}
  7. {% cycle twovariable %}
  8. {% cycle twovariable %}

#outing:

html

jques

dome

TOT

python

css

javascript

html

您可以在cycle标记中使用任意数量的值,以空格分隔。包含在单引号(')或双引号(")中的值被视为字符串文字,而不带引号的值则被视为模板变量。

如果使用关键字,silent,将在第二次调用是使用上一个值。

  1. dd:{% cycle 1 2 3 'TOT' as twovariable %}
  2. {% cycle twovariable %}
  3. {% cycle twovariable silent %}
  4. {% cycle twovariable %}
  5. {% cycle twovariable %}

#outing

dd:1

2

2

3

TOT

5、debug

输出整个调试信息,包括当前上下文和导入的模块

6、extends

表示该模板扩展了父模板

这个标签有两种使用方式:

{% extends "base.html" %}(带引号)使用文字值 "base.html"作为父模板的名称来扩展。

{% extends variable %}使用的变量variable。如果变量的计算结果为字符串,Django将使用该字符串作为父模板的名称。如果变量评估为一个Template对象,Django将使用该对象作为父模板。

通常,模板名称是相对于模板加载程序的根目录,字符串参数也可以是./开头的相对路径。

7、filter

通过一个或多个过滤器过滤块的内容。可以使用管道指定多个过滤器,并且过滤器可以具有参数,就像变量语法一样。

8、firstof

输出不是第一个参数的变量为false,如果所有传递的变量都是false,则不输出

{% firstof var1 var2 var3 %}

相当于:

{% if var1 %}

{ { var1 }}

{% elif var2 %}

{ { var2 }}

{% elif var3 %}

{ { var3 }}

{% endif %}

如果所有传递的变量都是False,您还可以使用文字字符串作为回退值:

{% firstof var1 var2 var3 "fallback value" %}

您可以使用该语法将输出存储在变量中。{% firstof var1 var2 var3 asvalue %}

9、for

循环输出数组中的每个项目,使项目在上下文变量中可用。

循环列表的值:

  • {% for item in list %}
  • { { item }}{% endfor %}

可以使用reversed反向循环列表:

  • {% for item in list reversed %}
  • { { item }}{% endfor %}

列表可以使用嵌套循环:

  • {% for x in list1 %}

{% for y in x %}

{ { y }}{% endfor %}

{% endfor %}

字典循环,可以使用items方法得到字典的建和值:

  • {% for k,v in row.items %}
  • { { k }}={ { v }}{% endfor %}

for循环再循环中设置的变量:

forloop.conter  循环的当前迭代索引从1开始计数

forloop.counter0  循环当前迭代的索引从0开始计数

forloop.revcounter  循环结束时的迭代次数(1索引)

forloop.revcounter0  循环结束时的迭代次数(0索引)

forloop.first  如果这是通过循环的第一次,则为真

forloop.last  如果这是通过循环的最后一次,则为真

forloop.parentloop  对于嵌套循环,这是围绕当前循环的循环

  • {% for i in li %}
  • { { forloop.counter }}:{ { i }}{% endfor %}
  • {% for i in li %}
  • { { forloop.counter0 }}:{ { i }}{% endfor %}
  • {% for i in li %}
  • { { forloop.revcounter }}:{ { i }}{% endfor %}
  • {% for i in li %}
  • { { forloop.counter0 }}:{ { i }}{% endfor %}
  • {% for i in li %}

{% if forloop.first %}

{% else %}{% endif %}

{ { i }}{% endfor %}

  • {% for number in li %}

{ { number }}

{% if not forloop.last %},

{% endif %}

{% endfor %}

for   empty:如果给定的数组为空或无法找到,则for标签可以接受一个可选的子句,显示文本:{% empty %}

  • {% for number in li1 %}

{ { number }}

{% empty %}

sorry ,no number in this li1. {% endfor %}

10、if

判断标签计算一个变量,并且该变量是真,即存在,不为空,不是flase的数据块的内容被输出:{% if %}

#views:

def ifelse(request):

po = request.POST.get('number') #获取提交的数据

return render(request,'app02/ifelse.html',{'po':int(po)}) #传递给模板

#html:

{ { po }}

{% if po >= 90 %}

优秀:{ { po }}

{% elif po >= 80 %}

良好:{ { po }}

{% elif po >= 70 %}

一般:{ { po }}

{% elif po >= 60 %}

及格:{ { po }}

{% else %}

不及格:{ { po }}

{% endif %}

你可能感兴趣的:(python3,模板库)