Django (03)請求和響應

2021-09-08 07:35:18 字數 3281 閱讀 8474

客戶端傳參的幾種方式

傳遞方式

示例

後端獲取方式

資料型別

url路徑(path)

/news/1/2

正則匹配

str

查詢字串

/news2?category=1&page=2

request.get

querydict

請求體:表單型別資料

category=1&page=2

request.post

querydict

請求體:json等

request.body

bytes

請求頭

category=1 page=2

request.meta

字典

**說明:

客戶端通過五種方式向伺服器傳參,django 會自動把引數封裝到 request 物件(httprequest型別的例項)中,我們獲取這些引數需要通過 request 物件獲取,而根據傳參的方式的不同,獲取呼叫的屬性也會不同,獲取到的資料型別也不一樣。根據屬性的資料型別需要呼叫其 get() 方法或 getlist() 方法獲取值。

獲取 request 請求的屬性:.get:獲取查詢字串引數  (與請求方式無關)——querydict物件    

.post:獲取請求體中的表單型別的資料(與請求方式有關,僅限post請求)——querydict物件

.body:獲取請求體非表單型別的資料,比如:json

.meta:獲取請求頭中的資料(獲取自定義屬性時,需要加字首「http_」, 並轉成大寫)

.user:當前訪問的登入使用者物件

關於 request.user 屬性:

request 裡儲存著 user 屬性,如果使用者已登陸,那麼 user 是乙個 abstractuser 物件,如果使用者未登入,那麼 user 是乙個 annoymoususer 物件。

user物件判斷是否登陸:request.user.is_authenticated()返回true表示登陸。

csrf 安全防護:

django 對 post、put、patch、delete 請求方式開啟了 csrf 安全防護,為方便測試,可以在 settings.py 檔案中注釋掉 csrf 中介軟體,關閉csrf防護。

獲取querydict:

獲取querydict的值時,可以在引數中設定預設值,在或取不到值時返回預設值

獲取值的方法:

.get()方法

根據鍵獲取值

如果乙個鍵同時擁有多個值,將獲取最後乙個值

如果鍵不存在則返回none值,可以設定返回自定義的預設值

dict.get('鍵',預設值)

.getlist()方法

根據鍵獲取多個值,值以列表返回

如果鍵不存在則返回空列表

dict.getlist('鍵',預設值)

httpresponseredirect   重定向

jsonresponse   返回json資料

django提供了一系列httpresponse的子類,可以快速設定狀態碼:

response =httpresponse(content=響應體, content_type=響應體資料mime型別, status=狀態碼)

可以直接將 httpresponse 物件當做字典進行響應頭鍵值對的設定:

respone['響應頭key'] = 響應頭值

#

jsonresponse()

#解決編碼問題:

jsonresponse(, json_dumps_params=)

#傳遞列表資料

jsonresponse(, json_dumps_params=, safe=false)

#

重定向到首頁 狀態碼:302

return redirect('

/index')

#專案的urls.py

url(r'

^', include('

users.urls

', namespace='

users

')),

#應用的urls.py

url(r'

^home$

', views.index, name='

index'),

defmy_redirect(request):

#生成的url的值為 /home

url = reverse('

users:index')

return redirect(url) #

重定向

posted @

2018-11-17 20:52

舉著栗子 閱讀(

...)

編輯收藏

django之請求和響應

回想一下,利用http協議向伺服器傳參有幾種途徑?在定義路由url時,可以使用正規表示式提取引數的方法從url中獲取請求引數,django會將提取的引數直接傳遞到檢視的傳入引數中。定義在django.http.querydict httprequest物件的屬性get post都是querydict...

Django的請求和響應

檢視1就是python函式 2函式的第乙個引數 就是請求 和請求相關的 它是httprequest的例項物件 3 我們必須要返回乙個響應 相應是httpresponse的例項物件 子類例項物件 def index request 登入成功之後需要跳轉到首頁 註冊成功後需要跳轉到首頁 from dja...

Django基礎1 請求和響應

四 建立投票應用程式 安裝命令 pip3 install django檢視版本 python3 m django version 2.1.2版本的選擇 作為學習當然選擇最新版本了,預設安裝的也是最新版本。django2.0 python3.4,python3.5,python3.6 django2....