2016-01-27 221 views
1

Django有一個包含請求參數的QueryDict,可以通過request.GETrequest.POST訪問,我假設這個數據是根據請求類型填充的。Django請求數據作爲參數

即如果請求是GET然後我需要使用request.GET,如果後期再使用request.POST

但我注意到,不論是何種請求類型(連放或刪除)數據可從request.GET但總是空上request.POST

的方法類型是正確的,因爲我可以檢查它使用request._get_request返回

<bound method WSGIRequest._get_request of <WSGIRequest: DELETE '/api/user/profile/'>> 
+1

HTTP協議允許在GET請求中發送POST請求和POST數據中的GET數據。其他類型的請求也是如此。 – furas

+0

那麼我發送的請求是否錯誤?我使用Chrome的郵遞員插件來指定請求類型 –

+0

我不知道。我只想說,在某些API中,GET/POST/PUT/DELETE請求可以發送GET數據(在url中)和(在body中作爲多部分數據)POST數據,JSON數據和FILES。並且它還可以以Headers授權:持票人...) – furas

回答

1

的屬性是誤稱,真;他們與GET和POST無關。

在HTTP中,參數可以作爲URL的查詢字符串部分 -/foo/bar?q = 123 - 或者在請求正文中提供。 Django調用這些GET和POST,但在POST上擁有查詢字符串是完全有效的,因此會造成混淆。 (但事實並非如此; GET不能有身體)。