首頁>技術>

Django是一個基於MVC框架構造的MTV框架,因為控制器接受使用者輸入的部分已經由框架自動處理了,我們只需要關注模型(Model)、模板(Template)和檢視(Views)的構建。其中的Views就是我們的檢視模組,用來接收、處理Web請求並且返回Web響應。在url中我們需要建立url地址和檢視函式的對應關係,當用戶請求某個url地址時django就能找到對應的檢視函式進行處理。每一個請求都對應著一個檢視,由檢視處理請求後再返回資料給瀏覽器顯示。

Views檢視

檢視其實就是一個python函式(函式一般定義在 app/views.py檔案中),該函式必須有request引數(引數名可以自定義)。當伺服器接收到http協議的請求後會根據報文自動建立HttpRequest物件,這個HttpRequest物件包含了前端傳送過來的資料和請求頭資訊。django.http模組中定義了HttpRequest物件相關的API,我們可以利用這些API在函式中完成對請求資料進行接收、認證、分析、處理,然後返回使用者需要的相關資料及型別。

from django.http import HttpResponse# 必須有一個引數requestdef index(request):    """進入首頁的檢視函式"""    # 待處理完請求後返回字串內容給瀏覽器顯示    return HttpResponse("Hello Django!")
檢視URL配置

在專案的urls檔案中包含應用的urls檔案,在應用的urls檔案中包含具體url和檢視的對應關係。url關係定義在一個名叫urlpatterns的列表中,每一個元素都是一條路由並對應一個檢視函式。域名和埠號不需要配置,Django在啟動的時候會幫我們自動關聯上。

from django.contrib import adminfrom django.urls import pathfrom app.views import *# Project/urls.pyurlpatterns = [    # 包含應用app01下的urls.py    url(r'^app/', include('app.urls')),]# app/urls.pyurlpatterns = [    path('index/', index), ]
Views檢視類

隨著業務的增加模組需求的功能也會隨之遞增,需要請求和對應的檢視函式也就越來越多。為了方便統一管理我們可以把同一模組的功能歸類處理,這樣日後維護起來也會方便很多。而且類檢視具有更好的可讀性、複用性和擴充套件性,可以被類檢視繼承,也可以透過新增裝飾來限制行為。定義類檢視需要繼承Django提供的父類View,繼承view類中的類方法就可以呼叫dispath進行請求分發。如果需要為類檢視的所有方法新增裝飾器可以在類前面透過@method_decorator裝飾,如果只是在某個函式上裝飾可以透過引數name來指定,也可以直接在需要新增裝飾器的方法上使用@method_decorator。

類檢視URL配置

在url函式中第一個引數指向Url地址,第二個引數指向檢視函式。而這裡我們定義的是檢視類不能直接付給url函式,我們需要利用Django提供的類檢視方法as_view()來分發路由。url在定義路由的時候需要在匹配頭用尖號^、匹配尾用$,path()路由語法中不需要定義正則表示式的開頭和結尾。

urlpatterns = [    # url('^index/$', index.as_view()),     path('index/', index.as_view()), ]
as_view()函式

Django完成URL解析之後會直接把request物件以及URL解析器捕獲的引數丟給檢視函式,當使用類檢視時我們就需要透過as_view方法,as_view中還定義了一個view函式,該函式接收三個引數,第一個是request物件,第二個是url解析器捕獲的url中的位置引數,第三個是url解析器捕獲的url中的關鍵字引數。as_view的作用就是把類轉化成函式並返回一個閉包,閉包會根據請求的方式到對應的檢視函式中找以請求方式命名的函式進行執行。

6
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • python中spy++的使用超詳細教程