本篇文章給大家分享的是有關(guān)怎么在Django中使用請(qǐng)求Request,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
在循化等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作專業(yè)公司,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷,外貿(mào)網(wǎng)站建設(shè),循化網(wǎng)站建設(shè)費(fèi)用合理。1 URL路徑參數(shù)
在定義路由URL時(shí),使用正則表達(dá)式提取參數(shù)的方法從URL中獲取請(qǐng)求參數(shù),Django會(huì)將提取的參數(shù)直接傳遞到視圖的傳入?yún)?shù)中。
未命名參數(shù)按順序傳遞, 如
url(r'^index/([a-z]+)/(\d{4})/$', views.index), def index(request, parameter1, parameter2): print(parameter1) print(parameter2) return HttpResponse('OK')
有命名參數(shù)按名傳遞,如
url(r'^index/(?P<parameter1>[a-z]+)/(?P<parameter2>\d{4})/$', views.index), def index(request, parameter1, parameter2): print(parameter1) print(parameter2) return HttpResponse('OK')
2、 查詢字符串Query String
獲取請(qǐng)求路徑中的查詢字符串參數(shù),可以通過request.GET屬性獲取,返回QueryDict對(duì)象。
# /q/?a=2&b=3&a=4 def q(request): a = request.GET.get('a') b = request.GET.get('b') alist = request.GET.getlist('a') print(a) # 4 print(b) # 3 print(alist) # ['2', '4'] return HttpResponse('OK')
2、 QueryDict對(duì)象
HttpRequest對(duì)象的屬性GET、POST都是QueryDict類型的對(duì)象
方法get():根據(jù)鍵獲取值
如果一個(gè)鍵同時(shí)擁有多個(gè)值將獲取最后一個(gè)值
如果鍵不存在則返回None值,可以設(shè)置默認(rèn)值進(jìn)行后續(xù)處理
dict.get('鍵',默認(rèn)值) 可簡(jiǎn)寫為 dict['鍵']
方法getlist():根據(jù)鍵獲取值,值以列表返回,可以獲取指定鍵的所有值
如果鍵不存在則返回空列表[],可以設(shè)置默認(rèn)值進(jìn)行后續(xù)處理
dict.getlist('鍵',默認(rèn)值)
3、 請(qǐng)求體
請(qǐng)求體數(shù)據(jù)格式不固定,可以是表單類型字符串,可以是JSON字符串,可以是XML字符串,應(yīng)區(qū)別對(duì)待。
可以有POST、PUT、PATCH、DELETE。
Django默認(rèn)開啟了CSRF防護(hù),會(huì)對(duì)上述請(qǐng)求方式進(jìn)行CSRF防護(hù)驗(yàn)證,在測(cè)試時(shí)可以關(guān)閉CSRF防護(hù)機(jī)制,方法為在settings.py文件中注釋掉CSRF中間件,如:
4、 表單類型 Form Data
前端發(fā)送的表單類型的請(qǐng)求體數(shù)據(jù),可以通過request.POST屬性獲取,返回QueryDict對(duì)象
def body(request): a = request.POST.get('a') b = request.POST.get('b') alist = request.POST.getlist('a') print(a) print(b) print(alist) return HttpResponse('OK')
5、非表單類型 Non-Form Data
非表單類型的請(qǐng)求體數(shù)據(jù),Django無法自動(dòng)解析,可以通過request.body屬性獲取最原始的請(qǐng)求體數(shù)據(jù)。
import json def body_json(request): json_str = request.body json_str = json_str.decode() # python3.6 無需這步 data = json.loads(json_str) print(data['a']) print(data['b']) return HttpResponse('OK')
6、請(qǐng)求頭
可以通過request.META屬性獲取請(qǐng)求頭headers中的數(shù)據(jù)
def headers(request): print(request.META['SERVER_PORT']) return HttpResponse('OK')
以上就是怎么在Django中使用請(qǐng)求Request,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前名稱:怎么在Django中使用請(qǐng)求Request-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article20/dphhjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、軟件開發(fā)、網(wǎng)頁設(shè)計(jì)公司、營(yíng)銷型網(wǎng)站建設(shè)、域名注冊(cè)、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容