httprequest物件
伺服器接收http請求後會根據報文建立乙個httprequest物件
get:包含get請求的所有引數
post:包含post請求的所有引數
path:請求的完整路徑,不包括網域名稱和埠
method:表示請求的方式
encoding :瀏覽器提交資料的編碼方式
files:包含上傳的檔案
cookies:包含所有的cookies
session:表示當前會話
httprequest物件的屬性get、post都是querydict型別的物件
querydict型別的物件用來處理同乙個鍵帶有多個值的情況
get 根據鍵獲取值,如果乙個鍵有多個值預設獲取最後乙個值。鍵不存在返回none。
getlist 根據鍵獲取值,值以列表形勢返回,可以獲取指定鍵的所有值。鍵不存在返回空列表。
/weather/beijing/2018
定義路由時,可以使用正規表示式提取引數的方法從url路徑中獲取引數,django會將提取的引數直接傳遞到檢視的傳入引數中
return httpresponse('ok')請求路徑中的查詢字串引數,可以通過requees.get屬性獲取,返回querydict物件
查詢字串不區分請求方式,客戶端進行post方式的請求,依然可以通過request.get獲取請求中的查詢字串資料。
可以傳送請求體資料的請求方式post,put,delete,patch
表單型別 form data
表單型別的請求體資料,可以通過request.post屬性獲取,返回querydict物件。
def requests_test(request):
a=request.post.get('username')
return httpresponse('ok')
非表單型別 non-form data
非表單型別,django無法自動解析,可通過request.body屬性獲取最原始的請求體資料,再按照請求體格式(json,xml等)進行解析。
request.body 返回bytes型別資料。然後序列化為需要的資料。
json_str = request.body
# json_str = json_str.decode() # python3.6 無需執行此步
req_data = json.loads(json_str)
獲取請求頭中的資料通過request.meta屬性獲取,request.meta為字典型別。
引數:
content_length–請求正文的長度(以字串形式)。
content_type–請求正文的mime型別。
http_accept–響應的可接受內容型別。
http_accept_encoding–響應的可接受編碼。
http_accept_language–響應的可接受語言。
http主機–客戶端傳送的http主機頭。
http_referer–引用頁面(如果有)。
http_user_agent–客戶端的使用者**字串。
query_string–查詢字串,作為單個(未分析)字串。
remote_addr–客戶端的ip位址。
remote_host –客戶端的主機名。
remote_user –由web伺服器驗證的使用者(如果有)。
request_method-例如「post」或「get」方法。
server_name–伺服器的主機名。
server_port–伺服器的埠(以字串形式)。
django獲取請求引數
需求 假設使用者訪問127.0.0.1 user 1 2,你想獲取1,2。應該怎麼操作呢?1 未命名引數 位置引數 在專案下的urls.py下增加設定 url r user d d views.index 在user.views的index檢視中 def index request,a,b 接受的引...
Django跨域請求無法傳遞Cookie
問題 在使用 django vue 進行前後端分離開發時,發現在跨域訪問情況下,後台 httpresponse 在使用set cookie方法後,瀏覽器無法獲取 cookie。解決方法 django 端使用django cors headers解決跨域問題,修改 settings.py 檔案。具體方...
Django跨域請求無法傳遞Cookie的解決
在使用 django vue 進行前後端分離開發時,發現在跨域訪問情況下,後台 httpresponse 在使用 set cookie 方法後,瀏覽器無法獲取 cookie。django 端使用 django cors headers 解決跨域問題,修改 settings.py 文gwawcfhwm...