1. 程式人生 > 實用技巧 >python測試開發django(5)--模板templates

python測試開發django(5)--模板templates

前言

html是一個靜態的語言,裡面沒法傳一些動態引數,也就是一個寫死的html頁面。如果想實現在一個固定的html樣式,傳入不同的引數,這就可以用django的模板傳參來解決。

模板引數

先在xjyn應用下新建一個templates資料夾,層級目錄如下

新建一個a.html檔案,xjyn/templates/a.html檔案內容如下,模板變數用{{變數名稱}}來表示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>武漢-會</title>

</head>
<body>
<p>
    歡迎{{name}}同學學習django!
    <br>
</p>
</body>
</html>

在settings.py腳本里面新增模板的路徑,修改TEMPLATES中的DIRS為

[BASE_DIR+"/xjyn/templates"]

 BASE_DIR的值前面已經定義為當前指令碼的路徑:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

 檢視與url

xjyn/views寫個檢視函式,內容如下

from django.shortcuts import render
from django.http import HttpResponse,Http404
# Create your views here.

def he(request):
    context={}
    context['name']='會會'
    return render(request,"a.html",context)

 xjyn/urls.py新增訪問路徑

#helloworld/helloworld/urls.py
from django.conf.urls import url
from django.urls import re_path,path
from xjyn import views

urlpatterns=[
  url('^hui$',views.he),
]

接著在瀏覽器輸入地址:http://127.0.0.1:8000/hui就能訪問了

Django模板標籤

if/else標籤

條件判斷if語句,最後endif結束

{% if condition1 %}
   ... display 1
{% elif condition2 %}
   ... display 2
{% else %}
   ... display 3
{% endif %}

for標籤

與Python的for語句的情形類似,迴圈語法是for X in Y,Y是要迭代的序列而X是在每一個特定的迴圈中使用的變數名稱。

每一次迴圈中,模板系統會渲染在{% for %}和{% endfor %}之間的所有內容。

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

ifequal/ifnotequal 標籤

{% ifequal %} 標籤比較兩個值,當他們相等時,顯示在{% ifequal %}和{% endifequal %}之中所有的值。

下面的例子比較兩個模板變數user 和 currentuser:

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

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

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

註釋標籤

Django 註釋使用{# #}

{# 這是一個註釋 #}