從後端獲取數據,在前端頁面顯示出來是Django交互的最後一步。
Django遵從的是以下原理:
from django.template import Context,Template
t = Template("{{ name }} is welcome")
c = Context( { "name" : "John" } )
t.render(c)
>>>u"John is welcome"
搬到頁面上,即在後端傳遞c,在前端顯示t,用c中的數據渲染t。
這一章主要說前端顯示:
最簡單的就是上面那種,一個{{}} 傳遞一個變量。
除此之外,可以用一些簡單邏輯:
1.if語句:
{% if name != 'John' %}
……
{% else %}
……
{% endif %}
{% if name != 'John' %}
……
{% else %}
{% if name != 'Harry' %}
……
{% else %}
……
{% endif %}
{% endif %}
另外,在if中可以使用and、or來深化邏輯。但是一行之中and、or只能出現一種,不可混用。不過每一種之間可以使用多個,比如多個and、多個or。
對於判斷兩個變值是否相等,可以使用下面的語句:
{% if equal A B %}
……
{% else %}
……
{% endifequal %}
A、B可以爲字符串(單、雙、無引號均可)、整數、列表、小數,不可以爲列表、字典、布爾類型還有一些if語句要和for語句結合使用,放在for介紹中說明。
2.for:
基本用法:
{% for item in list %}
……
{% endfor %}
空表檢測:
執行循環前,先檢測列表大小,爲空時給予提示。
{% for item in list %}#{% for item in list reversed%}表示逆向迭代
……
{% empty %}
…… #empty時執行這裏操作
{% endfor %}
或
{% if list%}
{% for item in list %}
……
{% endfor %}
{% else %}
…… #空時執行這裏
{% endif %}
在循環中,可以根據循環次數做相應操作:
可以在if語句中使用下列變量進行操作:
forloop.counter 計數
forloop.revcounter 剩餘數
forloop.first 第一次迭代
forloop.last 最後一次迭代
forloop.parentloop當前循環的上一級循環的forloop對象
forloop.parentloop.first./counter/last等
3.comment
在前端的python語句裏可以使用註釋:
單行註釋:{# ……#}
多行註釋:
{% comment %}
……
{% endcomment %}
4.過濾器 {{ date | date:"F j,Y"}} 從後臺讀進來的date值,可以通過指定格式的過濾器修改樣式。F-moth j-day Y-year
其它過濾器還有:
| lower 變小寫
| first | upper 首字母大寫(類似於linux的通道)
| length 變量長度
| truncatewords:"30" 變量前30個詞