Cyr*_* N. 53 django parameters rest
我想跟随我的新django项目的RESTful模式,并且我想知道在发出PUT/DELETE请求时参数的位置.
据我所知,我只在请求中看到GET和POST QueryDict,没有其他人.Django是否在请求中添加了新的PUT或DELETE QueryDict,还是将参数添加到GET或POST QueryDict?
谢谢你的帮助.
小智 87
我正在使用django v1.5.我主要使用QueryDict来解决问题:
from django.http import QueryDict
put = QueryDict(request.body)
description = put.get('description')
Run Code Online (Sandbox Code Playgroud)
在*.coffee中
$.ajax
url: "/policy/#{policyId}/description/"
type: "PUT"
data:
description: value
success: (data) ->
alert data.body
fail: (data) ->
alert "fail"
Run Code Online (Sandbox Code Playgroud)
您可以到这里查找更多信息.我希望这可以帮到你.祝好运:)
小智 39
我假设你问的是你是否可以有这样的方法:
def restaction(request, id):
if request.method == "PUT":
someparam = request.PUT["somekey"]
Run Code Online (Sandbox Code Playgroud)
答案是否定的,你不能.Django没有为PUT,OPTIONS和DELETE请求构建这样的字典,这里解释了推理.
为了总结一下,REST的概念是,您交换的数据可能比简单的键值映射要复杂得多.例如,PUTting图像,或使用json.框架无法知道您可能想要发送数据的多种方式,因此它做了显而易见的事情 - 让您处理这一点.另请参阅此问题的答案,其中给出了相同的答案.
现在,您在哪里找到数据?那么,根据文档,django 1.2的特点request.raw_post_data.作为一个抬头,它看起来像django 1.3将支持 request.read()即文件般的语义.
有一个问题,我无法解决如何从request. QueryDict(request.body)没有帮助我。
所以,我找到了适合我的解决方案。我开始使用这个:
from django.http.multipartparser import MultiPartParser
您可以从以下位置获取数据request:
MultiPartParser(request.META, request, request.upload_handlers).parse()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46279 次 |
| 最近记录: |