1. 程式人生 > >python-關於Http向伺服器傳參的四種方式

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:類似字典物件,包含所有上傳檔案