• Django学习日记05_模板_模板语言


    Variables

    在模板中,使用两个大括号包含变量的方式来使用变量:

    {{ name }}

    该变量应该作为键值对中的键,在Context中能被查找到。

    Tags

    模板中使用Tags来进行简单的逻辑:

    {% commet %}
        #body
    {% endcommet %}

    Django内置了大量的Tags

    1. if :使用if标签来实现分支逻辑

    {%if option%}
        #if body
    {%elif option2%} 
        #elif body
    {%else%} 
        #else body
    {%endif%} 

    和python中基本相同,如果option存在(文件或者目录)、不为空(列表、集合、字典等)、不为假(布尔),则会解析#if body中的内容,否则依次类推。支持and、or、not等布尔值运算。

    2. for :使用for标签来实现循环

    {%for item in itemlist%}
        <p>{{item}}</p> 
    {%empty%}
        <p>The item list is empty</p>
    {%endfor%} 

    如上例,使用for实现将itemlist中的元素分段显示。for提供了一个empty条目,当itemlist为空时解析该条目下的内容。

    3. 等等详见DjangoDocument给出的详细关键字列表

    Filters

    在模板中,支持使用类似于Unix管道的操作:

    {{ name | lower }} 将name转换成小写,{{ list | length}} 返回list的长度等,Filter 内置的管道操作列表详细可见官方文档

    Comments

    使用{#comment#} 来插入注释

    Inheritance

    模板支持继承,模板的继承类似于模板的一次预解析,将父模板中的一些内容解析出来后生成新的子模板。

    在父模板中,使用block标签来设置可被解析的块:{% block name %}

    在子模板中,通过extend标签来继承父模板:{% extend “base.html" %},并且对父模板中的{% block name %}块进行填充:

    {% block name %}
     <p>This is a block</p> 
    {%endblock%}

    这样,就形成一个子模板,包含父模板中所有的内容,并且对{%block name%} 块内容进行填充。

    Method calls

    模板标签中,支持使用对象,并且在变量标签中使用方法会直接调用,之后使用了再补充

  • 相关阅读:
    51Nod一级算法1002数塔取数问题
    素数筛法
    辗转相除法求最大公约数
    模型评估与选择
    Linux下的五种IO模型
    浮点类型丢失精度的问题
    Update操作浅析,一定是先Delete再Insert吗?
    SQLSERVER中返回修改后的数据
    MachineKey生成
    Katana的起源
  • 原文地址:https://www.cnblogs.com/lyon2014/p/4591380.html
Copyright © 2020-2023  润新知