美文网首页
Django模板-模板语言

Django模板-模板语言

作者: IT的咸鱼 | 来源:发表于2018-08-14 20:21 被阅读0次

    模板语言包括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%}

    相关文章

      网友评论

          本文标题:Django模板-模板语言

          本文链接:https://www.haomeiwen.com/subject/xdxbbftx.html