日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Django request.META.get()獲取不到header頭的原因分析

瀏覽:244日期:2024-09-10 08:49:04

在使用Django過(guò)程中需要開發(fā)一些API給其他系統(tǒng)使用,為了安全把Token等驗(yàn)證信息放在header頭中。

如何獲取:

使用request.META.get('headerkey')來(lái)獲取

注意:

如果headerkey為auth-token,即headers={’auth-token’:’1234’}

應(yīng)該使用request.META.get('HTTP_AUTH_TOKEN')獲取

headerkey中的小寫轉(zhuǎn)為大寫,橫線“-”轉(zhuǎn)為下劃線“_”,并且加上前綴HTTP

尤其注意headerkey中不應(yīng)該包含 HTTP前綴,以及符號(hào)'_',否則會(huì)取不到對(duì)應(yīng)的值

補(bǔ)充:Django中獲取參數(shù)(路徑,查詢,請(qǐng)求頭,請(qǐng)求體)

一、通常HTTP協(xié)議向服務(wù)器傳參有幾種途徑

提取URL的特定部分,如/weather/shanghai/2018,可以在服務(wù)器端的路由中用正則表達(dá)式截取;

查詢字符串(query string),形如key1=value1&key2=value2;

請(qǐng)求體(body)中發(fā)送的數(shù)據(jù),比如表單數(shù)據(jù)、json、xml;

在http報(bào)文的頭(header)中。

1.URL中參數(shù)的獲取

在定義路由URL時(shí),可以使用正則表達(dá)式提取參數(shù)的方法從URL中獲取請(qǐng)求參數(shù),Django會(huì)將提取的參數(shù)直接傳遞到視圖的傳入?yún)?shù)中。

1. 1未命名參數(shù)按定義順序傳遞

注意:參數(shù)獲取的順序與url中參數(shù)的位置一一對(duì)應(yīng),不能互換

url(r’^users/([a-z]+)/(d{4})/$’, views.get_user), def get_user(request, name, ID): print(’name=%s’ % name) print(’id=%s’ % id) return HttpResponse(’OK’)

1.2 命名參數(shù)按名字傳遞

注意:如果在路由中指定了參數(shù)的名字,name接收參數(shù)時(shí),必須要使用路由中指定的參數(shù)名稱,不能換成其他名字,此時(shí),兩個(gè)參數(shù)位置可以互換。

url(r’^users/(?P<name>[a-z]+)/(?P<id>d{4})/$’, views.users), def weather(request, name, id): print(’name=%s’ % name) print(’id=%s’ % id) return HttpResponse(’OK’)2.獲取請(qǐng)求路徑中的查詢字符串參數(shù)

(形如?k1=v1&k2=v2),可以通過(guò)request.GET屬性獲取,返回QueryDict對(duì)象。

什么是QueryDict對(duì)象?

定義在django.http.QueryDict

HttpRequest對(duì)象的屬性GET、POST都是QueryDict類型的對(duì)象

與python字典不同,QueryDict類型的對(duì)象用來(lái)處理同一個(gè)鍵帶有多個(gè)值的情況

2.1方法get():根據(jù)鍵獲取值

如果一個(gè)鍵同時(shí)擁有多個(gè)值將獲取最后一個(gè)值

如果鍵不存在則返回None值,可以設(shè)置默認(rèn)值進(jìn)行后續(xù)處理

dict.get(’key’,value)==>可簡(jiǎn)寫為: dict[’key’]

2.2方法getlist():根據(jù)鍵獲取值,值以列表返回,可以獲取指定鍵的所有值

如果鍵不存在則返回空列表[],可以設(shè)置默認(rèn)值進(jìn)行后續(xù)處理

dict.getlist(’鍵’,默認(rèn)值)

2.3獲取參數(shù)實(shí)例

訪問(wèn)路徑:/user/qs/?a=1&b=2&a=3

注意:查詢字符串不區(qū)分請(qǐng)求方式,客戶端GET,POST方式的請(qǐng)求,都可以通過(guò)request.GET獲取請(qǐng)求中的查詢字符串?dāng)?shù)據(jù)。

url(r’^qs/$’,views.get_value,name=’g_v’), def get_value(request): a = request.GET.get(’a’) #3 b = request.GET.get(’b’) #2 num_list = request.GET.getlist(’a’) #[’1’,’3’] print(a) print(b) print(num_list) return HttpResponse(reverse(’user:get_value’))3.請(qǐng)求體中的參數(shù)

3.1表單數(shù)據(jù)獲取

通過(guò)request.POST來(lái)獲取

注意:Django默認(rèn)開啟了CSRF防護(hù),會(huì)對(duì)上述請(qǐng)求方式進(jìn)行CSRF防護(hù)驗(yàn)證,在開發(fā)測(cè)試時(shí)可以關(guān)閉CSRF防護(hù)機(jī)制,方法為在settings.py文件中注釋掉CSRF中間件

url(r’^getbody/$’,views.get_body), def get_body(request): form_data = request.POST.get(’c’) print(form_data) return HttpResponse(form_data)

3.2非表單數(shù)據(jù)獲取

非表單類型的請(qǐng)求體數(shù)據(jù),Django無(wú)法自動(dòng)解析,可以通過(guò)request.body屬性獲取最原始的請(qǐng)求體數(shù)據(jù),自己按照請(qǐng)求體格式(JSON、XML等)進(jìn)行解析。request.body返回bytes類型

import json url(r’^getjson/$’,views.get_body_json), def get_body_json(request): # 得到的是一個(gè)二進(jìn)制數(shù)據(jù) json_str = request.body print(json_str) # b’{n 'f':200,n 'd':300n n}’ # 對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行解碼,解碼得到j(luò)son數(shù)據(jù) json_str = json_str.decode() print(json_str) # {'f':200,'d':300} # 將json數(shù)據(jù)轉(zhuǎn)化成字典形式 json_data = json.loads(json_str) print(json_data) # {’f’: 200, ’d’: 300} # 獲取json數(shù)據(jù),使用字典方式取值 print(json_data[’d’]) # 300 print(json_data[’f’]) # 200 return HttpResponse(’ok’)4.例如:Django獲取http請(qǐng)求頭內(nèi)容

通過(guò)view函數(shù)傳遞過(guò)來(lái)的 reuqest,使用request.META.get('header key')來(lái)獲取

注意:

header key必須大寫,前綴必須是'HTTP',后面如果連接符是橫線“-”,要改成下劃線“_”。例如你的header的key為api_auth,那在Django中應(yīng)該使用request.META.get('HTTP_API_AUTH')來(lái)獲取請(qǐng)求頭的數(shù)據(jù)。

5.其他常用HttpRequest對(duì)象屬性

request.method 請(qǐng)求方式

request.path 請(qǐng)求路徑

request.user 請(qǐng)求的用戶對(duì)象

request.FILES 一個(gè)類似于字典的對(duì)象,包含所有的上傳文件

request.encoding 一個(gè)字符串,表示請(qǐng)求的頁(yè)面的完整路徑,不包含域名和參數(shù)部分。

url(r’^otherattr/$’, views.other_attr), def other_attr(request): print(request.method) # POST print(request.path) # /user/otherattr/ print(request.encoding) # None:表示使用瀏覽器的默認(rèn)設(shè)置,一般為utf-8,這個(gè)屬性是可寫的, # 可以通過(guò)修改它來(lái)修改訪問(wèn)表單數(shù)據(jù)使用的編碼,接下來(lái)對(duì)屬性的任何訪問(wèn)將使用新的encoding值。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Django
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品一区二区三区av麻| 日本视频在线一区| 欧美精品91| 91亚洲无吗| 97成人超碰| 日韩福利视频导航| 亚洲91在线| 五月激激激综合网色播 | **爰片久久毛片| 日韩高清不卡一区二区| japanese国产精品| 午夜电影亚洲| 国产精品婷婷| 国产毛片久久| 四虎精品永久免费| 国产日韩精品视频一区二区三区| 国产三级精品三级在线观看国产| 国产视频一区二| 国产a亚洲精品| 日韩中文在线电影| 免费精品国产的网站免费观看| 亚洲欧洲一区| 亚洲精品一级二级三级| 婷婷综合福利| 日韩av中文在线观看| 日韩在线观看一区二区三区| 综合精品一区| 日韩av中文字幕一区| 精品亚洲精品| 激情六月综合| 中文字幕免费一区二区| 国产精品最新| 久久亚洲黄色| 激情婷婷久久| 日韩综合一区二区| 国产精品激情电影| 日韩另类视频| 免费不卡在线观看| 国产精品日本一区二区三区在线| 精品国产乱码久久久久久樱花| 电影天堂国产精品| 国产精品丝袜xxxxxxx| 欧美专区一区| 国产videos久久| 婷婷综合五月| 人人爱人人干婷婷丁香亚洲| 激情欧美一区二区三区| 亚洲综合中文| 国产精品久久免费视频| 日本免费久久| 国产精品一区二区99| 久久久国产亚洲精品| 亚洲精品观看| 91一区二区| 亚洲a级精品| 久久亚洲黄色| 羞羞答答国产精品www一本| 国产精品草草| 国产毛片久久| 在线看片国产福利你懂的| 天堂成人国产精品一区| 国语精品一区| 久热re这里精品视频在线6| 久久精品国产成人一区二区三区| 欧美日韩国产在线观看网站| 国产欧美大片| 在线亚洲自拍| 精品福利久久久| 人人爽香蕉精品| 日韩国产激情| 午夜天堂精品久久久久| 日韩一区电影| 国产伦乱精品| 精品伊人久久久| 国产精品视频一区视频二区| 国产成年精品| 亚洲精品欧美| 999精品在线| 欧美精品1区| 亚洲综合精品四区| 亚洲天堂av资源在线观看| 天堂av在线| 欧美精品国产白浆久久久久| 亚洲激情中文在线| 极品av在线| 日本不卡一区二区| 亚洲精品一二三区区别| 久久久久观看| 亚洲日本久久| 欧美大黑bbbbbbbbb在线| 国际精品欧美精品| 日韩国产91| 欧美专区在线| 午夜免费一区| 色爱av综合网| 黄色在线观看www| 欧美成人一二区| 97久久亚洲| 在线视频亚洲欧美中文| 国产一区久久| 国产成人精品一区二区免费看京 | 国产欧美69| 日韩av不卡一区二区| 蜜桃传媒麻豆第一区在线观看| 精品一区在线| 久久中文字幕av一区二区不卡| 精品色999| 美女视频一区在线观看| 国产丝袜一区| 国产精品视频一区二区三区综合 | 久久精品一区| 国产精品一区二区三区av| 日韩国产一二三区| 中文精品电影| 亚洲精品动态| 日韩国产一二三区| 日韩欧美2区| 亚洲欧美日本国产| 综合亚洲色图| 亚洲欧洲国产精品一区| 日韩一区二区三区高清在线观看| 亚洲图片久久| 亚洲三级视频| 玖玖玖国产精品| 蜜臀av性久久久久蜜臀aⅴ四虎| 午夜电影亚洲| 国产亚洲毛片| 亚洲伊人精品酒店| 亚洲精品自拍| 亚洲综合色婷婷在线观看| 免费精品视频| 视频在线观看一区| 亚洲欧美日韩在线观看a三区| 视频一区中文字幕| 亚洲aa在线| 日本三级亚洲精品| 国产福利一区二区精品秒拍| 国产毛片精品| 国产精久久一区二区| 久久久久伊人| 日韩av自拍| 亚洲爱爱视频| 久久久久网站| 亚洲激情五月| 三级一区在线视频先锋| 久久福利影视| 欧美日韩国产在线观看网站| 国产视频一区免费看| 99在线观看免费视频精品观看| 亚洲综合日韩| 日韩高清成人在线| 国产福利一区二区三区在线播放| 久久精品免费看| 久草免费在线视频| 少妇久久久久| 99香蕉国产精品偷在线观看 | 激情综合亚洲| 视频一区二区欧美| 日韩高清不卡一区二区| 久久久久亚洲精品中文字幕| 日韩欧美视频专区| 视频一区中文| 中文一区一区三区免费在线观 | 久久中文亚洲字幕| 九九综合在线| 在线精品视频一区| 国产日产高清欧美一区二区三区| 欧美激情三区| 久久三级视频| 免费观看在线色综合| 国产精品一区二区三区美女 | 福利精品在线| 欧美+日本+国产+在线a∨观看| 怡红院精品视频在线观看极品| 一级欧美视频| 麻豆极品一区二区三区| 999精品色在线播放| 日本亚洲视频在线| 国产66精品| 99香蕉国产精品偷在线观看| 国产欧美大片| 亚洲大片在线| 亚洲精品国产日韩| 国产成人a视频高清在线观看| 在线一区电影| 国产精品香蕉| 在线成人直播| 日本午夜精品久久久| 日韩精品dvd| 男人的天堂久久精品| 成人午夜在线| 亚洲婷婷丁香| 天堂av在线| 亚洲毛片网站| 人人草在线视频| 亚洲精品一级二级三级| 夜鲁夜鲁夜鲁视频在线播放| 亚洲精品麻豆| 日本精品不卡| 日韩av不卡在线观看|