Django模板-模板语言

2018-08-14  本文已影响0人  IT的咸鱼

模板语言包括4种类型,分别是

模板变量      标签      过滤器      注释

                               模板变量

模板变量的作用是计算并输出,变量名必须由字母、数字、下划线(不能以下划线开头)和点组成。

语法如下:

{{变量}}

当模版引擎遇到点("."),会按照下列顺序查询:

        1:字典查询,例如:foo["bar"]

        2: 属性或方法查询,例如:foo.bar

        3:数字索引查询,例如:foo[bar]

如果变量不存在, 模版系统将插入'' (空字符串)

在模板中调用方法时不能传递参数

举例

1)打开booktest/views.py文件,创建视图temp_var。

def temp_var(request):

    dict={'title':'字典键值'}

    book=BookInfo()

    book.btitle='对象属性'

    context={'dict':dict,'book':book}

    return render(request,'booktest/temp_var.html',context)

2)打开booktest/urls.py文件,配置url。

url(r'^temp_var/$', views.temp_var),

3)修改在templates/booktest下创建temp_var.html。

调用:

{{dict.title}}
{{book.btitle}}

模板变量

4)运行服务器,在浏览器中输入如下网址。

http://127.0.0.1:8000/temp_var/

5)浏览效果如下图。

                              标签

语法如下:

{%代码段%}

for标签语法如下:

{%for item in 列表%}

循环逻辑

{{forloop.counter}}表示当前是第几次循环,从1开始

{%empty%}

列表为空或不存在时执行此逻辑

{%endfor%}

if标签语法如下:

{%if ...%}

逻辑1

{%elif ...%}

逻辑2

{%else%}

逻辑3

{%endif%}

比较运算符如下:

注意:运算符左右两侧不能紧挨变量或常量,必须有空格。

==(等等于)         !=(不等于)         <(小于)        >(大于)      <=(小于等于)       >=(大于等于)

布尔运算符如下:

and(并且)        or(或者)        not(满足条件的相反)

点击查看内建标签了解更多标签,还有一些常用的标签会在后续地章节中讲解

                              过滤器

语法如下:

使用管道符号|来应用过滤器,用于进行计算、转换操作,可以使用在变量、标签中。

如果过滤器需要参数,则使用冒号:传递参数。

语法:{ { 变量|过滤器 }},例如{ { name|lower }}     

变量|过滤器:参数

长度length,返回字符串包含字符的个数,或列表、元组、字典的元素个数。

默认值default,如果变量不存在时则返回默认值。

data|default:'默认值'

日期date,用于对日期类型的值进行字符串格式化,常用的格式化字符如下:

value|date:"Y年m月j日  H时i分s秒"

Y表示年,格式为4位,y表示两位的年。

m表示月,格式为01,02,12等。

d表示日, 格式为01,02等。

j表示日,格式为1,2等。

H表示时,24进制,h表示12进制的时。

i表示分,为0-59。

s表示秒,为0-59。

点击查看内建过滤器了解更多过滤器

                             注释

在模板中使用如下模板注释,这段代码不会被编译,不会输出到客户端;html注释只能注释html内容,不能注释模板语言。

1)单行注释语法如下:

{#...#}

注释可以包含任何模版代码,有效的或者无效的都可以。

{# { % if foo % }bar{ % else % } #}

2)多行注释使用comment标签,语法如下:

{%comment%}

...

{%endcomment%}

上一篇下一篇

猜你喜欢

热点阅读