客戶端傳參的幾種方式
傳遞方式
示例
後端獲取方式
資料型別
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....