2010年5月30日 星期日

Django - Template

Template的用法備註
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" }}:過濾器可以有參數,用冒號做分隔。

沒有留言:

張貼留言