檢視函式是通過return方式返回,然後生成相應的網頁內容呈現在瀏覽器上,return是python的內建語法,用於設定函式的返回值,若要設定不同的響應方式,則需要使用django內建的響應類。如圖:
響應型別
說明httpresponse(『hello world』)
狀態碼200,請求已成功被伺服器接受
狀態碼302,重定向首頁位址
狀態碼301,永久重定向首頁位址
狀態碼404,網頁不存在或網頁的url失效
狀態碼403,沒有訪問許可權
狀態碼405,不允許使用該請求方式
狀態碼500,伺服器內容錯誤
jsonresponse()
預設狀態碼200,響應內容為json資料
預設狀態碼200,響應內容以流式輸出
不同的響應方式代表不同的http狀態碼,其核心作用是web server伺服器用來告訴瀏覽器當前網頁發生了什麼事,或者當前web伺服器的響應狀態。上述的響應類主要來自於模組django.http,該模組是實現響應功能的核心。以httpresponse為例,在mydjango專案的index資料夾的urls.py和views.py中編寫功能**:
# index的urls.py
from django.urls import path
from .
import views
urlpatterns =
[ # 定義首頁的路由
path(''
, views.index, name=
'index'),
]# index的views.py
200)
檢視函式index使用響應類httpresponse實現響應過程。從httpresponse的引數可知,第乙個引數是響應內容,一般是網頁內容或json資料,網頁內容是以html語言為主的,json資料用於生成api介面資料。第二個引數用於設定http狀態碼,它支援http所有的狀態碼。
從httpresponse的使用過程可知,如果生成網頁內容,就需要將html語言以字串的形式表示,如果網頁內容過大,就會增加檢視函式的**量,同時也沒有體現模板的作用。因此,django在此基礎上進行了封裝處理,定義了函式render、render_to_response等。
render和render_to_response實現的功能是一致的。render_to_response自2.0版本以來已開始被棄用,但並不代表在2.0以上版本無法使用,只是大部分開發者都使用render。對render進行說明,語法如下:
render
(request,template_name,context=none,content_type=none,status=none,using=none)
render的引數request和template_name是必須引數,其餘引數都是可選引數,各個引數如下: django 2 x路由系統匹配path
django2.x路由系統已經替換成下面的寫法 官方文件 url的路由表示用path和re path代替,模組的匯入由django1.x版本的 from django.conf.urls import url,include變成現在的django2.x中的 from django.urls impo...
django2 X中url和path的區別及用法
一 path和url的區別 django.urls path django.conf.urls url path與url是兩個不同的模組,效果都是響應返回頁面,path呼叫的是python第三方模組或框架,而url則是自定義的模組,如views下的def函式對應你url中的引數值.例如 url r ...
Django 1 x版本與2 x版本 區別
匯入的模組是 from django.conf.urls import url urlpatterns中url對應的是正規表示式,如下 from django.conf.urls import url,include from django.contrib import admin urlpatte...