Django2 X 返回響應內容

2021-10-05 09:41:14 字數 1869 閱讀 5846

檢視函式是通過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...