1. 程式人生 > >Django筆記-6-模板

Django筆記-6-模板

定義模板

變數

  1. 檢視傳遞給模板的資料

  2. 要遵守識別符號規則

  3. 語法

    {{ var }}

    注意: 如果使用的變數不存在, 則插入的為空字串

  4. 在模板中使用.方法

    1. 字典查詢
    2. 屬性或者方法
    3. 數字索引
  5. 在模板中呼叫物件的方法

    注意: 在模板中不能傳遞引數

標籤

  1. 語法

    {% tag %}

  2. 作用

    • 在出輸出中建立文字

    • 控制邏輯和迴圈

  3. if

    格式:

    {% if 表示式%}
    語句1
    {% elif 表示式%}
    語句2
    {% else %}
    語句n
    {% endif %}
    
  4. for

    格式:

    {% for 變數 in 列表 %}
    語句
    {% endfor %}
    
    {% for 變數 in 列表 %}
    語句1
    {% empty %} # 列表為空或者不存在時執行語句2
    語句2
    {% endfor %}
    

    示例:

    <ul>
    {% for stu in students %}
    	<li>
        	{{forloop.counter}}--{{stu.name}}--{{stu.grade}}
        </li>
    {% empty %}
        <li>目前沒有學生</li>
    {% endfor %}
    
  5. comment

    格式:

    {% comment %}
    註釋的內容:可多行
    {%endcomment%}
    
  6. ifequual/ifnotequal

    作用:判斷是否相等或者不等

    格式:

{% ifequal 值1 值2 %} # 如果值1等於值2, 則執行語句 語句 {% endifequal %} ```

  1. include

    作用: 載入模板並以標籤內的引數渲染

    格式:

    {% include 模板目錄 引數1 引數2 %}
    
  2. url

    作用: 反向解析

    格式:

    {% url 'namspacename' p1 p2 %}
    
  3. csrf_token

    作用: 用於跨站請求偽造保護

    格式:

    {% crsf_token %}
    
  4. block/extends

    作用: 用於模板的繼承

  5. autoescape

    作用: 用於HTML轉義

過濾器

語法:

{{ var|過濾器 }}

作用:

在變數被顯示前修改

* lower
* upper

示例:

<h1>
    {{ str|upper}}
</h1>

過濾器可以傳遞引數, 引數用引號引起來

  • join:
<h1>
    {{list|join"#"}}
</h1>

如果一個變數沒有被提供, 或者值為False/空, 可以使用預設值.

  • default

格式:

<h1>
    {{ test|default="沒有"}}
</h1>

根據給定格式轉換日期為字串

  • date

    格式:

    {{ dateVal|date:'y-m-d' }}
    
  • HTML轉義

    escape

  • 加減乘除

    <h1>num = {{ num|add:10 }}</h1>
    <h1>num = {{ num|add:-5 }}</h1>
    <h1>num = {{% widthratio num 1 5% }}</h1>
    <h1>num = {{% widthratio num 5 1% }}</h1>
    

註釋

  1. 單行註釋
    {# 註釋內容 }