http://djangobook.py3k.cn/2.0/chapter04/
- 可用的變數範圍
- 字典
- 屬性
- 方法 - 必須是無參數的方法
- 列表類型 - List, tuple等
- "方法"的使用,需特別注意
- 方法若出異常,則錯誤訊息會往上傳。若該異常有silent_variable_failure的屬性,且設定為true,則不會將訊息往上傳出。
- 方法需注意使用。ex mytest.delete() 會誤執行,可在方法內設定alters_data=True
- Template語法
- {{ ... }} :內部存放變數
- {% ... %} :內部放入標籤(Tag), if、for、ifequal
- 標籤(Tag)
- if
- {% if isTrue %} ... {% endif %}:判斷isTrue是否為真,若為真,執行中間的區塊。
- {% if isTrue %} ... {% else %} ... {% endif %}
- {% if%}:可用 not、and、or。但and跟or不可同時使用。也不能用圓括弧。
- for
- {% for item in itemlist %} ...
item {% endfor %}:迴圈 - 可加個"reversed"反向搜尋。{% for item in itemlist reversed %}
- {% empty %}:當空的時候執行。
- {% for item in itemlist %} ...
item {% empty %} ... {% endfor %} - {{ forloop.counter }}:for迴圈裡的變數,紀錄執行次數,第一次時為 1。
- 其他變數:
- forloop.counter0:從0開始。
- forloop.revcounter:第一次為總數量,最後一次為1。
- forloop.revcounter0:最後一次為0。
- forloop.first:第一次執行時,為True。
- forloop.last:最後一次執行時,為True。
- ifequal
- {% ifequal AAA BBB %} ... {% endifequal %}:如果AAA跟BBB相同,執行中間的區塊
- 注釋:
- {# This is a comment #}:中間的字串為注釋,但必須要為同一行,不可換行。
- {% comment %} ... {% endcomment %}:兩者之間的區塊皆為注釋。
- 過濾器:
- {{ name | lower }}:所有字串變成小寫。
- {{ my_list | first | upper }}:過濾器的結果,可以不斷傳送。
- {{ bio | truncatewords : "30" }}:過濾器可以有參數,用冒號做分隔。
沒有留言:
張貼留言