相关疑难解决方法(0)

如何在Django 1.6中使用HTTP POST请求接收json数据?

我正在学习Django 1.6.
我想使用HTTP POST请求发布一些JSON,我正在使用Django来完成此任务的学习.
我试图用request.POST['data'],request.raw_post_data,request.body但都不是为我工作.
我的views.py是

import json
from django.http import StreamingHttpResponse
def main_page(request):
    if request.method=='POST':
            received_json_data=json.loads(request.POST['data'])
            #received_json_data=json.loads(request.body)
            return StreamingHttpResponse('it was post request: '+str(received_json_data))
    return StreamingHttpResponse('it was GET request')
Run Code Online (Sandbox Code Playgroud)

我使用请求模块发布JSON数据.

import requests  
import json
url = "http://localhost:8000"
data = {'data':[{'key1':'val1'}, {'key2':'val2'}]}
headers = {'content-type': 'application/json'}
r=requests.post(url, data=json.dumps(data), headers=headers)
r.text
Run Code Online (Sandbox Code Playgroud)

r.text应打印该消息并发布数据,但我无法解决这个简单的问题.请告诉我如何在Django 1.6中收集发布的数据?

python django http-post django-views python-requests

50
推荐指数
2
解决办法
8万
查看次数

Django&TastyPie:request.POST为空

我正在尝试使用curl进行POST:

curl --dump-header - -H "Content-Type: application/json" -X POST --data '{"item_id": "1"}' http://www.mylocal.com:8000/api/1/bookmarks/
Run Code Online (Sandbox Code Playgroud)

但是,request.POST始终为空.

下面是我的ModelResource代码:

class BookmarkResource(ModelResource):


    class Meta:
        queryset = Bookmark.objects.all()    
        resource_name = 'bookmarks'
        fields = ['id', 'tags']
        allowed_methods = ['get', 'post', 'delete', 'put']
        always_return_data = True
        authorization= Authorization()
        include_resource_uri = False

    def determine_format(self, request):
        return "application/json"

    def obj_create(self, bundle, **kwargs):

        request = bundle.request

        try:
            payload = simplejson.loads(request.POST.keys()[0])
        except:
            payload = simplejson.loads(request.POST.keys())
Run Code Online (Sandbox Code Playgroud)

谁知道我错过了什么?

提前致谢.

django tastypie

12
推荐指数
1
解决办法
1万
查看次数

Django Rest API POST问题

我正在尝试使用Visual Studio中的Django REST框架在Django 1.8中构建一个非常简单的REST API,我希望在其中使用单个服务方法来处理JSON,但我似乎无法进行POST:

我试图通过Postman发送这个简单的JSON,就像测试一样:

{
   "foo":"bar"
}
Run Code Online (Sandbox Code Playgroud)

标题:

Content-Type: application/json
Run Code Online (Sandbox Code Playgroud)

这是我的方法:

@csrf_exempt
@api_view(['POST'])
def test(request):
    data = request.data
    return HttpResponse(status=200)
Run Code Online (Sandbox Code Playgroud)

但我的问题是request.data是空的.如果相反,我尝试访问request.body,我得到

从请求的数据流中读取后,您无法访问正文.

任何想法可能是什么问题?

python django rest django-rest-framework

7
推荐指数
1
解决办法
2911
查看次数

在视图中获取JSON请求(使用Django)

我正在尝试设置视图以从API接收JSON通知.我正在试图弄清楚如何获取JSON数据,我现在以此为起点,看到请求正确接收:

def api_response(request):
    print request
    return HttpResponse('')
Run Code Online (Sandbox Code Playgroud)

我知道JSON对象在那里,因为print request它显示:

META:{'CONTENT_LENGTH': '178',
[Fri Sep 09 16:42:27 2011] [error]  'CONTENT_TYPE': 'application/json',
Run Code Online (Sandbox Code Playgroud)

但是,POST和GET QueryDicts都是空的.我如何设置一个视图来接收JSON对象,以便我可以处理它?谢谢.

python api django json

4
推荐指数
1
解决办法
1万
查看次数

解析POST json消息Django/GAE的问题

当我使用POST使用json参数向GAE发送POST消息时,服务器解析的QueryDict不像json那样被解析...

我在这个问题上发现了一个类似的问题:对Django服务器的iphone Json POST请求在QueryDict中创建了QueryDict

可能是GAE配置存在问题.我使用最新版GAE的Python 2.6.6.首先,如果我使用nc工具获得POST,POST消息是完美的:

POST /url/ HTTP/1.1
Accept: application/jsonrequest
Content-type: application/json
Accept-Encoding: gzip
Content-Length: 458
Host: 192.168.1.1:8080
Connection: Keep-Alive

{"id":"xxx","jsonrpc":"2.0","method":"XXX","params":{...}]}
Run Code Online (Sandbox Code Playgroud)

在服务器控制台中,我收到下一条消息:

DEBUG    2010-09-16 06:47:05,891 dev_appserver.py:1693] Access to module file denied: /usr/lib/pymodules/python2.6/simplejson
DEBUG    2010-09-16 06:47:05,894 dev_appserver.py:1700] Could not import "_json": Disallowed C-extension or built-in module
DEBUG    2010-09-16 06:47:05,897 dev_appserver.py:1700] Could not import "_json": Disallowed C-extension or built-in module
Run Code Online (Sandbox Code Playgroud)

和想法¿?

服务器中的查询字典是 <QueryDict: {u'{"id":"xxx","jsonrpc":"2.0","method":"XXX","params":{...}}': [u'']}>

正如你可以检查django处理程序解析POST请求的json作为新字典的键...

在链接问题中,有下一个解决方案......

hack_json_value = request.POST.keys()[0]
hack_query_dict = json.loads(hack_json_value)
foo = hack_query_dict['foo']
bar = hack_query_dict['bar']
Run Code Online (Sandbox Code Playgroud)

但也许你可以帮我找另一个...... …

python django post google-app-engine

3
推荐指数
1
解决办法
6299
查看次数

将JSON数据传输到Django网站

我正在application/json用java 传输一个HttpPost使用Django的服务器.

我正在执行此处所述的传输:在PHP中进行JSON POST请求解析

如何创建接收此json数据的页面?

python django json

3
推荐指数
1
解决办法
2307
查看次数