2012-08-05 101 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