python-關於Http向伺服器傳參的四種方式
利用HTTP協議向伺服器傳參四種方式:
1.提取URL的特定部分,可以在服務端路由中用正則擷取 如url(r'^weather/(?P<city>[a-z]+)/(?P<year>\d{4})/$', views.weather)
按命名引數?P<city> 在函式傳參是不用考慮順序
2. 查詢字串 ?a=1&b=2&c=3 request.GET.get('a') 不分請求方式,即使客戶端用POST請求,依然用request.GET獲取
HttpResponse物件屬性GET,POST都是QeryDict型別的物件 方法get()根據鍵取值,一鍵多值時取最後一個,不存在返回None
getlist()根據鍵取值,以列表返回不存在返回[] 可設預設值
3.請求體 請求方式有POST,PUT,PATCH,DELETE django預設開啟了csrf防護 測試時在setting中的MIDDLEWARE中關閉
3.1 表單型別 通過request.POST獲取請求資料, 且 request.POST只能獲取POST方式的請求體表單資料
3.2 非表單型別 django無法自動解析,可以通過request.body獲取原始請求資料,返回的bytes型別
4.請求頭 通過request.META獲取請求頭headers中資料 為字典型別 如 request.META['CONTENT_TYPE']
其他常用HttpResponse物件屬性 method:請求方式,user:請求的使用者物件,path:請求頁面的完整路徑,不包含域名和引數部分
encoding:提交的資料編碼格式 FILES:類似字典物件,包含所有上傳檔案