use*_*807 16 python django django-1.6
Django我遇到了一个奇怪的事情,这是我的views.py:
def api(request):
return HttpResponse("%s %s" % (request.method,request.raw_post_data))
Run Code Online (Sandbox Code Playgroud)
现在我使用POSTMAN(谷歌浏览器的小应用程序)进行HTTP POST.
我将POSTMAN设置为在原始字段中使用'test'发出POST请求.
Django给我三个不同的东西(随机):
有时Django会在某个时候返回'GET',有时甚至没有:
AttributeError at /
'WSGIRequest' object has no attribute 'raw_post_data'
Request Method: GET
Request URL: https://api.mywebsiteurl.com/
Django Version: 1.6.2
Exception Type: AttributeError
Exception Value:
'WSGIRequest' object has no attribute 'raw_post_data'
Exception Location: /home/spice_dj/spice/views.py in api, line 17
Python Executable: /usr/bin/python
Python Version: 2.7.3
Python Path:
['/usr/local/lib/python2.7/dist-packages/South-0.8.4-py2.7.egg',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/home/spice_dj']
Server time: Wed, 12 Mar 2014 22:51:11 -0400
Run Code Online (Sandbox Code Playgroud)
当我清楚地发出POST请求时,为什么Django会回复我'GET'?
为什么它会给我这个错误?
为什么它不会返回我在原始字段中设置的"测试"?
ale*_*cxe 38
该属性
HttpRequest.raw_post_data
已HttpRequest.body
在1.4 中重命名为 .向后兼容性将被删除 -HttpRequest.raw_post_data
将不再有效.
相关票证中描述了这一动机:
request.raw_post_dat
一个坏名字.它与POST
特别是无关,它只是HTTP请求的主体.这会使用户感到困惑,并使Django看起来不了解HTTP的工作原理.我们应该更改名称request.body
并开始弃用过程.
用途request.body
:
def api(request):
return HttpResponse("%s %s" % (request.method, request.body))
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
归档时间: |
|
查看次数: |
12259 次 |
最近记录: |