Django框架HttpRequest對象用法實例分析
本文實例講述了Django框架HttpRequest對象用法。分享給大家供大家參考,具體如下:
1.URL路徑參數(shù)
(1)位置參數(shù):使用正則分組,與視圖中的參數(shù)一一對應(yīng),不可換位置
例:
url(r'^(\d+)/(\d+)/$', views.index) def index(request, 參數(shù)1, 參數(shù)2): ...
(2)關(guān)鍵字參數(shù):參數(shù)位置可以變,與關(guān)鍵字保持一致即可
例:
url(r'^(?P<value1>\d+)/(?P<value2>\d+)/$', views.index) def index(request, value2, value1): ...
2.QueryDict對象
HttpRequest對象的屬性GET、POST都是QueryDict類型的對象,,QueryDict可以處理一鍵多值的問題。
(1)get:根據(jù)鍵獲取值,如果有多個值,則獲取最后一個。
get('鍵', 默認(rèn)值)
(2)getlist:根據(jù)鍵獲取值,值為列表形式。
getlist('鍵', 默認(rèn)值)
3.查詢字符串Query String
請求路徑中的查詢字符串(?k1=1&k2=v2…),可通過request.GET來獲取,返回QueryDict對象。(不區(qū)分請求方式,POST也可用GET來獲取)
例:
# /get/?a=1&b=2&a=3 def get(request): a = request.GET.get('a') b = request.GET.get('b') alist = request.GET.getlist('a') print(a) # 3 print(b) # 2 print(alist) # ['1', '3'] return HttpResponse('OK')
4.請求體
(1)表單類型Form Data:
通過request.POST.get()來獲取
(2)非表單類型Non-Form Data:
非表單類型數(shù)據(jù),Django無法自動解析,可以填先通過request.body獲取數(shù)據(jù),然后按照請求格式解析
例:
import json def post_json(request): json_str = request.body # 獲取請求體數(shù)據(jù) json_str = json_str.decode() # 解碼,python3.6 無需執(zhí)行此步 req_data = json.loads(json_str) # 將json轉(zhuǎn)為字典 print(req_data['a']) # 獲取字典值 print(req_data['b']) return HttpResponse('OK')
5.請求頭
可通過request.META來獲取請求頭信息,類型為字典類型
6.其他
參數(shù) | 描述 |
---|---|
method | 一個字符串,表示請求使用的HTTP方法,常用值包括:‘GET'、‘POST'。 |
use | 請求的用戶對象。 |
path | 一個字符串,表示請求的頁面的完整路徑,不包含域名和參數(shù)部分。 |
encoding | 一個字符串,表示提交的數(shù)據(jù)的編碼方式。 |
FILES | 一個類似于字典的對象,包含所有的上傳文件。 |
希望本文所述對大家基于Django框架的Python程序設(shè)計有所幫助。
相關(guān)文章
Python 函數(shù)用法簡單示例【定義、參數(shù)、返回值、函數(shù)嵌套】
這篇文章主要介紹了Python 函數(shù)用法,結(jié)合實例形式分析了Python函數(shù)定義、參數(shù)、返回值及函數(shù)嵌套相關(guān)使用技巧,需要的朋友可以參考下2019-09-09Python3.6實現(xiàn)連接mysql或mariadb的方法分析
這篇文章主要介紹了Python3.6實現(xiàn)連接mysql或mariadb的方法,結(jié)合實例形式分析了Python3.6針對mysql或mariadb數(shù)據(jù)庫操作的相關(guān)模塊安裝、數(shù)據(jù)庫與表的創(chuàng)建、數(shù)據(jù)庫連接等操作技巧與注意事項,需要的朋友可以參考下2018-05-05Pytorch 實現(xiàn)自定義參數(shù)層的例子
今天小編就為大家發(fā)信息一篇Pytorch 實現(xiàn)自定義參數(shù)層的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python基礎(chǔ)教程之增加和去除數(shù)字的千位分隔符
千位分隔符其實就是數(shù)字中的逗號,下面這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)教程之增加和去除數(shù)字的千位分隔符,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01Python利用xlrd?與?xlwt?模塊操作?Excel
這篇文章主要介紹了Python利用xlrd?與?xlwt?模塊操作?Excel,文章圍繞主題展開詳細(xì)的內(nèi)容,具有一定的參考價值,需要的小伙伴可以參考一下2022-05-05在Python中將函數(shù)作為另一個函數(shù)的參數(shù)傳入并調(diào)用的方法
今天小編就為大家分享一篇在Python中將函數(shù)作為另一個函數(shù)的參數(shù)傳入并調(diào)用的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01xshell會話批量遷移到mobaxterm的工具(python小工具)
這篇文章主要介紹了xshell會話批量遷移到mobaxterm的工具,使用方法也超級簡單,本文通過python代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12python爬蟲 線程池創(chuàng)建并獲取文件代碼實例
這篇文章主要介紹了python爬蟲 線程池創(chuàng)建并獲取文件代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09