成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

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

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

在使用Django過程中需要開發一些API給其他系統使用,為了安全把Token等驗證信息放在header頭中。

如何獲?。?p>使用request.META.get('headerkey')來獲取

注意:

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

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

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

尤其注意headerkey中不應該包含 HTTP前綴,以及符號'_',否則會取不到對應的值

補充:Django中獲取參數(路徑,查詢,請求頭,請求體)

一、通常HTTP協議向服務器傳參有幾種途徑

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

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

請求體(body)中發送的數據,比如表單數據、json、xml;

在http報文的頭(header)中。

1.URL中參數的獲取

在定義路由URL時,可以使用正則表達式提取參數的方法從URL中獲取請求參數,Django會將提取的參數直接傳遞到視圖的傳入參數中。

1. 1未命名參數按定義順序傳遞

注意:參數獲取的順序與url中參數的位置一一對應,不能互換

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 命名參數按名字傳遞

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

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.獲取請求路徑中的查詢字符串參數

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

什么是QueryDict對象?

定義在django.http.QueryDict

HttpRequest對象的屬性GET、POST都是QueryDict類型的對象

與python字典不同,QueryDict類型的對象用來處理同一個鍵帶有多個值的情況

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

如果一個鍵同時擁有多個值將獲取最后一個值

如果鍵不存在則返回None值,可以設置默認值進行后續處理

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

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

如果鍵不存在則返回空列表[],可以設置默認值進行后續處理

dict.getlist(’鍵’,默認值)

2.3獲取參數實例

訪問路徑:/user/qs/?a=1&b=2&a=3

注意:查詢字符串不區分請求方式,客戶端GET,POST方式的請求,都可以通過request.GET獲取請求中的查詢字符串數據。

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.請求體中的參數

3.1表單數據獲取

通過request.POST來獲取

注意:Django默認開啟了CSRF防護,會對上述請求方式進行CSRF防護驗證,在開發測試時可以關閉CSRF防護機制,方法為在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非表單數據獲取

非表單類型的請求體數據,Django無法自動解析,可以通過request.body屬性獲取最原始的請求體數據,自己按照請求體格式(JSON、XML等)進行解析。request.body返回bytes類型

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

通過view函數傳遞過來的 reuqest,使用request.META.get('header key')來獲取

注意:

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

5.其他常用HttpRequest對象屬性

request.method 請求方式

request.path 請求路徑

request.user 請求的用戶對象

request.FILES 一個類似于字典的對象,包含所有的上傳文件

request.encoding 一個字符串,表示請求的頁面的完整路徑,不包含域名和參數部分。

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

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Django
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲二区免费| 国产一区 二区| 日韩丝袜情趣美女图片| 欧美极品另类videosde| 午夜av区久久| k8久久久一区二区三区| 亚洲视频www| 欧美一区二区三区播放老司机| 久久综合色婷婷| 天堂影院一区二区| 91亚洲精品久久久蜜桃| 色综合久久久久综合体桃花网| 久久久亚洲午夜电影| 日韩电影在线免费| 国内不卡一区二区三区| 欧美婷婷六月丁香综合色| 欧美高清在线精品一区| 99国产精品久久| 色欲综合视频天天天| 亚洲午夜电影网| 欧美一区免费视频| 欧美色涩在线第一页| **网站欧美大片在线观看| 久久99精品久久久| 亚洲午夜在线| 欧美一区二区三区人| 国产在线观看一区二区| 欧美精品 国产精品| 亚洲自拍偷拍欧美| 91麻豆精品视频| 国产亚洲欧美日韩日本| 麻豆freexxxx性91精品| 国产一区二区中文| 国产精品久线在线观看| 丁香桃色午夜亚洲一区二区三区| 91网址在线看| 国产午夜三级一区二区三| 国内精品久久久久久久果冻传媒| 亚洲日本青草视频在线怡红院| 丁香一区二区三区| 欧美精品一区二区久久久| 精品在线播放午夜| 日韩欧美一区中文| 欧美黄污视频| 亚洲欧美日韩一区二区三区在线观看 | 亚洲在线电影| 欧美激情资源网| 狠狠爱www人成狠狠爱综合网| 一区二区三区日韩欧美| 欧美三级免费| 精品国产亚洲在线| 欧美日韩一区二区视频在线观看| 国产精品毛片久久久久久久| 不卡一区二区在线| 欧美一区永久视频免费观看| 91网上在线视频| 亚洲精品成人a在线观看| 欧美另类综合| 精品日产卡一卡二卡麻豆| 久久国产剧场电影| 久久婷婷人人澡人人喊人人爽| 日韩码欧中文字| 亚洲综合99| 狠狠狠色丁香婷婷综合激情 | 在线 亚洲欧美在线综合一区| 亚洲综合免费观看高清完整版在线 | 久久久欧美精品sm网站| 日韩亚洲欧美精品| 欧美激情在线免费观看| 亚洲日本欧美在线| 1000部国产精品成人观看| 久久亚洲综合| 99亚偷拍自图区亚洲| 亚洲一区视频在线| 538prom精品视频线放| 国产一区二区三区视频在线播放| 久久精品亚洲一区二区三区浴池| 国产精品日韩| 亚洲国产日韩在线一区模特| 欧美精品乱码久久久久久 | 欧美区国产区| 日韩国产欧美在线播放| 日韩精品最新网址| 国产成人亚洲综合色影视| 欧美日韩免费观看一区三区| 91天堂素人约啪| 日韩制服丝袜先锋影音| 26uuu精品一区二区在线观看| 国产区日韩欧美| 国产白丝精品91爽爽久久| 亚洲精品五月天| 欧美一区二区三区公司| 国产日韩欧美三区| 成人免费的视频| 三级精品在线观看| 国产欧美久久久精品影院| 欧美成人首页| 亚洲成人资源在线| 91黄色激情网站| 加勒比av一区二区| 1区2区3区精品视频| 欧美一区二区三区电影| 国产精品欧美久久| 99久久精品国产精品久久| 视频一区二区三区入口| 日本一区二区综合亚洲| 欧美日韩成人综合在线一区二区| 丁香五精品蜜臀久久久久99网站 | 亚洲精品成人少妇| 精品日产卡一卡二卡麻豆| 亚洲欧美激情诱惑| 91同城在线观看| 麻豆久久一区二区| 亚洲日本在线视频观看| 精品国产一区久久| 欧美视频一区二区三区四区| 亚洲激情在线| 97se亚洲国产综合在线| 久久精品免费看| 一区二区三区不卡视频| 国产午夜亚洲精品羞羞网站| 欧美男同性恋视频网站| 久久不射2019中文字幕| 美女性感视频久久| 国产精品国产三级国产普通话三级| 欧美精品v国产精品v日韩精品| 国产毛片久久| 国产精品hd| www.在线成人| 韩国视频一区二区| 天堂午夜影视日韩欧美一区二区| 成人欧美一区二区三区黑人麻豆 | 99久久国产综合精品女不卡| 美女免费视频一区二区| 一区二区三区免费| 国产精品沙发午睡系列990531| 91精品在线免费观看| 色菇凉天天综合网| 亚洲一级在线| 欧美午夜视频| 972aa.com艺术欧美| 国产精品99久久久久久宅男| 欧美国产亚洲另类动漫| 日韩一本二本av| 欧美三级乱人伦电影| 久久性天堂网| 国产伦理一区| 亚洲美女毛片| 精品电影一区| 国产精品高清一区二区三区| 99r国产精品| 国产传媒一区在线| 紧缚奴在线一区二区三区| 美女网站色91| 全国精品久久少妇| 久久夜色精品国产噜噜av| 欧美精品亚洲一区二区在线播放| 在线视频你懂得一区| 欧美二区不卡| 99精品国产热久久91蜜凸| 成人黄色在线看| 成人黄色国产精品网站大全在线免费观看 | 秋霞国产午夜精品免费视频| 亚洲午夜在线观看视频在线| 亚洲精品欧美综合四区| 亚洲丝袜另类动漫二区| 亚洲欧美一区二区在线观看| 国产精品久99| 最新日韩av在线| 日韩美女啊v在线免费观看| 国产精品系列在线| 国产精品乱人伦| 1024成人网色www| 一区二区在线免费观看| 一区二区三区日韩在线观看| 亚洲永久精品大片| 性做久久久久久免费观看欧美| 亚洲成人免费看| 五月开心婷婷久久| 偷拍一区二区三区四区| 日韩和欧美的一区| 视频一区视频二区中文| 亚洲女人av| 制服丝袜成人动漫| 欧美日韩国产首页| 欧美一区二区三区婷婷月色| 欧美一区二区三区在线观看 | 欧美变态口味重另类| 日韩精品一区二区三区在线观看 | 亚洲一区激情| 免费永久网站黄欧美| 欧美亚洲三级| 欧美自拍偷拍午夜视频| 欧美日韩视频不卡| 欧美一卡在线观看| 久久久一区二区| 亚洲日本va在线观看| 亚洲国产乱码最新视频| 麻豆精品新av中文字幕| 国产成人综合视频|