python測試開發django(5)--模板templates
阿新 • • 發佈:2020-12-06
前言
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 註釋使用{# #}
{# 這是一個註釋 #}