2012-08-05 47 views
6

django rest框架发布说明声明JSONP支持已在0.3.0中加入。我还在框架中找到了一个JSONPRenderer类。但是,我似乎无法找到任何关于如何使用这些东西的文档...我对jsonp相当陌生。将jsonp与django-rest-framework结合使用

有没有人成功地使用jsonp与Django rest框架?

回答

5

在发布此消息时,我找到了答案(或至少答案答案)。看起来,默认情况下,ModelSource上的jsonp渲染器是可用的,所以您只需将“?format = json-p”添加到请求的url。

+2

[Here's](http://django-rest-framework.org/api-guide/renderers.html#jsonprenderer)官方文档。 – chaselee 2013-11-12 23:08:19

+2

只是为了节省几分钟时间给大家google搜索它: REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES':( 'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.JSONPRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ), – vincent 2014-06-19 08:30:43

+1

更新:它曾经是django rest框架发行版的一部分,但它现在作为第三方软件包提供http://jpadilla.github.io/django-rest-framework-jsonp/ – 2015-04-17 07:49:18

0
from rest_framework.views import APIView 
from rest_framework_jsonp.renderers import JSONPRenderer, JSONRenderer 
from rest_framework.response import Response 

class YourClass(APIView): 
    renderer_classes = (JSONPRenderer, JSONRenderer) 

    def get(self, request, *args, **kwargs): 
     your_result = {{ your serialized result }} 
     return Response({'status': 'success', 'result': your_result}) 
2

以防万一有人在寻找jsonp

优先(docs):

pip install djangorestframework-jsonp

然后修改您的REST框架设置。

REST_FRAMEWORK = { 
    'DEFAULT_RENDERER_CLASSES': (
    'rest_framework_jsonp.renderers.JSONPRenderer', 
), 
} 

最后请确保您的网址包含?format=jsonp而不是?format=json-p