我只是用django设置了一个apache服务器,并测试它,在views.py中创建了一个非常简单的函数
channel = rabbit_connection()
@csrf_protect
@csrf_exempt
def index(request):
data={'text': 'Food truck is awesome! ','email': 'bob@yahoo.com','name': 'Bob'}
callback(json.dumps(data))
context = RequestContext(request)
return render_to_response('index.html',context_instance=context)
如果我向服务器发送GET或POST请求,此函数可以正常工作.但是,我想从POST请求中获取此数据.假设我发送这样的请求:
import pycurl
import simplejson as json
data = json.dumps({'name':'Bob','email':'bob@yahoo.com','text': u"Food truck is awesome!"})
c = pycurl.Curl()
c.setopt(c.URL,'http://ec2-54-......compute-1.amazonaws.com/index.html')
c.setopt(c.POSTFIELDS,data)
c.setopt(c.VERBOSE,True)
for i in range(100):
c.perform()
我想在视图中看到的是这样的:
if request.method == 'POST':
data = ?????? # Something that will return me my dictionary
以防万一:
它始终采用JSON格式,字段未知.
将从您的字典中返回单个值(key = data).如果你想要整个字典,你只需使用request.POST.您在这里使用QueryDict类:
In an HttpRequest object,the GET and POST attributes are instances of django.http.QueryDict. QueryDict is a dictionary-like class customized to deal with multiple values for the same key. This is necessary because some HTML form elements,notably,pass multiple values for the same key.
QueryDict instances are immutable,unless you create a copy() of them. That means you can’t change attributes of request.POST and request.GET directly.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。