2016-01-27 195 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不能有身体)。