全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

首頁(yè)技術(shù)文章正文

Python培訓(xùn):認(rèn)識(shí)視圖

更新時(shí)間:2022-07-27 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  視圖是Django框架的核心之一,它接收并處理URLconfs分發(fā)的HTTP請(qǐng)求,返回響應(yīng)。本章將對(duì)視圖相關(guān)的知識(shí)進(jìn)行講解。

  視圖用于處理HTTP請(qǐng)求,并返回響應(yīng)。視圖的功能決定了它的基本結(jié)構(gòu),其結(jié)構(gòu)示意如下:

def view_name(request, *arg=None, **kwargs=None):
    代碼段
    return HttpResponse(response)

  使用以上結(jié)構(gòu)可定義一個(gè)基本視圖,顯然這個(gè)視圖本質(zhì)上是一個(gè)Python函數(shù)。結(jié)構(gòu)示意中的view_name表示視圖名稱(chēng);參數(shù)request是必選參數(shù),用于接收請(qǐng)求對(duì)象(HttpRequest類(lèi)的實(shí)例);參數(shù)args和kwargs為可選參數(shù),用于接收URL中的額外參數(shù);返回值用于返回響應(yīng)對(duì)象(HttpResponse類(lèi)或其子類(lèi)的實(shí)例)。

  在應(yīng)用的views.py文件中定義一個(gè)返回當(dāng)前日期和時(shí)間的視圖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)

  以上視圖將頁(yè)面的樣式以硬編碼形式寫(xiě)在了代碼中,這會(huì)造成兩個(gè)問(wèn)題:

 ?、偃粢薷囊晥D返回的頁(yè)面樣式,必須修改Python代碼。

 ?、谌繇?yè)面內(nèi)容較多,視圖會(huì)非常臃腫。

  Django當(dāng)然考慮到了上述問(wèn)題,根據(jù)MTV設(shè)計(jì)模式,Django提倡將頁(yè)面樣式放在模板文件之中,在視圖文件中使用上下文字典向模板傳遞數(shù)據(jù)。

分享到:
在線(xiàn)咨詢(xún) 我要報(bào)名
和我們?cè)诰€(xiàn)交談!