更新時間:2022-07-27 來源:黑馬程序員 瀏覽量:
視圖是Django框架的核心之一,它接收并處理URLconfs分發(fā)的HTTP請求,返回響應(yīng)。本章將對視圖相關(guān)的知識進(jìn)行講解。
視圖用于處理HTTP請求,并返回響應(yīng)。視圖的功能決定了它的基本結(jié)構(gòu),其結(jié)構(gòu)示意如下:
def view_name(request, *arg=None, **kwargs=None): 代碼段 return HttpResponse(response)
使用以上結(jié)構(gòu)可定義一個基本視圖,顯然這個視圖本質(zhì)上是一個Python函數(shù)。結(jié)構(gòu)示意中的view_name表示視圖名稱;參數(shù)request是必選參數(shù),用于接收請求對象(HttpRequest類的實例);參數(shù)args和kwargs為可選參數(shù),用于接收URL中的額外參數(shù);返回值用于返回響應(yīng)對象(HttpResponse類或其子類的實例)。
在應(yīng)用的views.py文件中定義一個返回當(dāng)前日期和時間的視圖curr_time(),具體代碼如下:
from django.http import HttpResponse import detetime def curr_time(request): now = datetime.datetime.now() response = "<html><body>It is %s.</body></html>" % now return HttpResponse(response)
以上視圖將頁面的樣式以硬編碼形式寫在了代碼中,這會造成兩個問題:
①若要修改視圖返回的頁面樣式,必須修改Python代碼。
?、谌繇撁鎯?nèi)容較多,視圖會非常臃腫。
Django當(dāng)然考慮到了上述問題,根據(jù)MTV設(shè)計模式,Django提倡將頁面樣式放在模板文件之中,在視圖文件中使用上下文字典向模板傳遞數(shù)據(jù)。