Django學習(4)-- 模板(templates)
阿新 • • 發佈:2018-11-20
我們所請求的頁面是由HttpResponse()函式的引數;那麼當我們請求複雜的頁面的時候,難道難道要把很多的字串寫到和這個函式的引數中嗎?顯然這不太合理啊;
所以在Django中我們就會用到了模板;模板中定義的就是我們一個一個的html頁面,我們只需要把模板中的頁面交給檢視呼叫就可以了。
使用模板的步驟:
1在應用的資料夾下建立一個儲存html的資料夾取名為:templates
一般我們一個應用會包含多個不同種類的html頁面,所以我們可以在templates資料夾下再建立一個資料夾儲存同一類HTML檔案
2設定這個模板的查詢路徑
3設計HTML檔案
4檢視呼叫模板
找到模板
定義上下文
渲染模板
1在應用test資料夾下建立資料夾templates,然後再在templates資料夾下建立一個資料夾booktest儲存這一類html檔案
2開啟專案資料夾下的setting.py檔案;設定TEMPLATES的DIRS值:
'DIRS': [os.path.join(BASE_DIR, 'templates')],
結果如下:
設計HTML檔案:
<html> <head> <title>圖書列表</title> </head> <body> <h1>{{title}}</h1> {%for i in list%} {{i}}<br> {%endfor%} </body> </html>
註釋:{{變數名}}
{%程式碼段%}
檢視呼叫模板:
from django.http import HttpResponse from django.template import loader,RequestContext def index(request): # 1.找到模板 template=loader.get_template('test/index.html') # 2.定義上下文 context=RequestContext(request,{'list':range(10)}) # 3.渲染模板 return HttpResponse(template.render(context))
檢視呼叫模板簡寫
檢視呼叫模板都要執行以上三部分,於是Django提供了一個函式render封裝了以上程式碼。 方法render包含3個引數:
- 第一個引數為request物件
- 第二個引數為模板檔案路徑
- 第三個引數為字典,表示向模板中傳遞的上下文資料
from django.shortcuts import render def index(request): context={'list':range(10)} return render(request,'test/index.html',context)