python測試開發django-6.模板templates

1.前言

首先,我們要知道html是一門靜態語言,裏面沒法傳一些動態參數,也就是一個寫死的html頁面。

那麼,如果我們想實現在一個html頁面裏傳入不同的參數對應的參數值,這就可以用django框架提供的模板傳參功能來解決。

 

2.模板傳參

2.1.先在hello應用下或者【helloworld/hello/】下新建一個templates文件夾,具體層級目錄如下。

 

 

 2.2.在【helloworld/hello/templates】下新建一個【hongjingsheng.html】,【hongjingsheng.html】裏的模板變量用{{變量名稱}}來表示

 

 

 2.3.修改【helloworld/helloworld/settings】下的一個常量【TEMPLATES】裏第一個下標值對應的值裏的的【DIRS】值爲[str(BASE_DIR)+"/hello/templates",]

備註:具體使用原理可以參考這篇文章:https://segmentfault.com/q/1010000013866755。

 

 

 

 

 

 

 

 

 

2.4.在【helloworld/hello/views.py】裏新增一個視圖函數【hongjingsheng】

 

 

 

 

 

 

 

 

 2.5.在【helloworld/helloworld/urls.py】裏新增一個url匹配規則【url(r"^xiaohong/$",views.hongjingsheng)

 

 

 

 

 

  

2.6.接着,啓動django項目【helloworld】的服務,在任一瀏覽器上輸入地址【http://127.0.0.1:8000/xiaohong/】,可以得到正確的頁面數據

 

 

 

3.django常用的模板標籤

3.1. if/else標籤

條件判斷採用if/else標籤。

注意點:if語句最後一定要以endif結尾!

{% if condition1 %}
   執行這裏面的代碼塊A
{% elif condition2 %}
   執行這裏面的代碼塊B
{% else %}
   執行這裏面的代碼塊C
{% endif %}  # end表示該if語句結束。

 

3.2. for標籤

與python語言裏的for語句的情形類似,for標籤的循環語法是【for X in Y】:Y是要迭代的序列,X是在每一個特定的循環中使用的變量名稱。

每一次循環中,django的html模板渲染機制會渲染在 {% for %} 和 {% endfor %} 之間的所有內容。

注意點:for標籤最後一定要以endfor結尾!

<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% endfor %}
</ul>

 

3.3. ifequal標籤

{% ifequal 變量A的變量值 變量B的變量值 %} 標籤用於比較兩個變量的變量值:當兩個變量的變量值相等時,執行在 {% ifequal %} 和 {% endifequal %} 之中所有的代碼塊。

注意點:ifequal標籤最後一定要以endifequal結尾!

舉個例子,用ifequal標籤來比較兩個模板變量 user 和 currentuser :

{% ifequal user currentuser %}
    <h1>Welcome!</h1>
{% endifequal %}

和 {% if %} 類似, {% ifequal %} 支持可選的 {% else%} 標籤。

舉個例子,用ifequal標籤來比較一個模板變量 section 和一個數據類型爲str的值"sitenews" :

{% ifequal section 'sitenews' %}
    <h1>Site News</h1>
{% else %}
    <h1>No News Here</h1>
{% endifequal %}

 

 

3.4. ifnotequal標籤

{% ifnotequal 變量A的變量值 變量B的變量值 %} 標籤用於比較兩個變量的變量值:當兩個變量的變量值不相等時,執行在 {% ifequal %} 和 {% endifequal %} 之中所有的代碼塊。

注意點:ifnotequal標籤最後一定要以endifnotequal結尾!

舉個例子,用ifnotequal標籤來比較兩個模板變量 user 和 currentuser :

{% ifnotequal user currentuser %}
    <h1>Welcome!</h1>
{% endifnotequal %}

和 {% if %} 類似, {% ifnotequal %} 支持可選的 {% else%} 標籤。

舉個例子,用ifnotequal標籤來比較一個模板變量 section 和一個數據類型爲str的值"sitenews" :

{% ifnotequal section 'sitenews' %}
    <h1>Site News</h1>
{% else %}
    <h1>No News Here</h1>
{% endifnotequal %}

 

 

3.5. 註釋標籤

django的html模板的註釋標籤,是使用{#  #}。

 

3.6. 其餘常用標籤

其餘常用django模板標籤的使用,可以參考該菜鳥教程:https://www.runoob.com/django/django-template.html。

這些內容直接用截圖的形式來記錄,不多做文字上面的分析了。

具體知識點,都可以參考該菜鳥教程:https://www.runoob.com/django/django-template.html。

 

 

 

 

 

 

 

3.7. 關於模板標籤的具體使用

目前只用截圖的形式來記錄調試過程的相關重要細節,讓大家對模板標籤的具體使用有個初步印象。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.django常用的過濾器

django常用的過濾器,也仍然可以參考該菜鳥教程:https://www.runoob.com/django/django-template.html。

過濾器的具體使用,該菜鳥教程裏都有具體代碼範例,所以這邊就不做相關記錄了。 這些過濾器的使用,可以不懂的時候當做新華字典來進行查閱和使用。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章