Django 獲取不同型別的請求資料

2021-10-07 23:58:44 字數 2049 閱讀 8492

請求:

# url

url(r"^test/(?p[a-z]+)/(?p\d+)/$"

, views.test)

,# views

deftest

(request, language, version)

:print

(language)

print

(version)

1、通過直接在檢視函式中傳入獲取。

language= self.kwargs[

'language'

]

2、通過self.kwargs獲得傳入的鍵值對,用key取得值

請求:query=vm%e8%99%9a%e6%8b%9f%e6%9c%ba%e4%b8%8a%e4%b8%8d%e4%ba%86%e7%bd%91&_asf=www.sogou.com&_ast=&w=01015002&p=40040108&ie=utf8&from=index-nologin&s_from=index&oq=&ri=6

# url

url(r"^qd/$"

, views.find)

,

獲取到的資料全部以query_dict形式儲存在get中

可以通過request.get讀取到。

如果使用restframework,則可以使用:

data = request.query_params

restframework對此進行了進一步封裝,即 「request.get的語義上更正確的名稱」 通過request.query_params(查詢引數)來獲取查詢集

def

query_params

(self)

:"""

more semantically correct name for request.get.

"""return self._request.get

querydict物件

定義在django.http.querydict中

httprequest物件的get、post屬性都是querydict型別的物件

與標準python字典不同,querydict型別的物件可以用來處理同乙個鍵帶有多個值的情況

querydict型別的物件,鍵和值都是字串型別注意:querydict型別的物件不是字典,僅僅是類似字典的物件而已

鍵是開發人員在編寫**時確定下來的

值是根據資料生成的

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

getlist()方法:根據鍵獲取值,值以列表返回,可以獲取指定鍵的所有值,如果鍵不存在則返回空列表,可以設定預設值進行後續處理

url(r"^data/$"

, views.get_data)

,

資料儲存在request.post中

,請求資料存放在request.body中(bytes:36格式 需要解碼decode後才能讀取)

rest_framework對request封裝後取值:

rest_framwork框架中的request不是django的request,不論前端傳過來什麼資料,都是放在request.data中

並且request.data的型別是,可以向操作字典那樣進行操作,但是這個字典沒有set方法或者說是不可以修改的

傳送json,urlecoding,form-data等常用等常用的資料都封裝到data裡了,這樣就解決了request.post在發json資料`的時候是取不到值的情況

不同型別語言

編譯型和解釋型的區別 先來看看編譯型語言定義 編譯型語言首先是將源 編譯生成機器指令,再由機器執行機器碼 二進位制 再來看看解釋型語言的定義 解釋型語言的源 不是直接翻譯成機器指令,而是先翻譯成中間 再由直譯器對中間 進行解釋執行。咋看一眼,還是一臉懵逼。下面打個比方 動態語言和靜態語言 我們常說的...

不同型別的檔案

cpp檔案 cpp是用c 語言編寫的源 檔案的字尾 具體實現 h檔案 h是c語言和c 語言的標頭檔案 函式宣告,巨集定義,函式原型 pde檔案 一共有4種可能,分別為 1 powerdesk encrypted file 2 pathology data exchange file 3 afp pa...

HttpServlet在不同型別時獲取引數方式

獲取引數的方式 1 request.getparameter 2 request.getinputstream 3 request.getreader 預設編碼方式 時 編碼後的結果通常是field1 value2 field2 value2 的形式,如 name aaaa password bbb...