【问题标题】:Using jsonp with the django-rest-framework将 jsonp 与 django-rest-framework 一起使用
【发布时间】:2012-08-02 12:46:15
【问题描述】:

django rest 框架发布说明声称在 0.3.0 中添加了 JSONP 支持。我还在框架中找到了一个 JSONPRenderer 类。但是,我似乎找不到任何关于如何使用这个东西的文档......我对 jsonp 还很陌生。

有没有人成功地将 jsonp 与 django rest 框架一起使用?

【问题讨论】:

    标签: jsonp django-rest-framework


    【解决方案1】:

    以防万一有人在寻找jsonp

    第一(docs):

    pip install djangorestframework-jsonp

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

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

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

    【讨论】:

      【解决方案2】:
      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})
      

      【讨论】:

        【解决方案3】:

        在发布此内容时,我找到了答案(或至少是一个答案)。看来 jsonp 渲染器默认在 ModelResource 上可用,因此您需要做的就是将“?format=json-p”添加到请求的 url。

        【讨论】:

        • Here's官方文档。
        • 只是为了节省几分钟时间给每个谷歌搜索它的人:REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( 'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.JSONPRenderer', 'rest_framework.renderers.BrowsableAPIRenderer' , ),
        • 更新:它曾经是 django rest 框架发行版的一部分,但现在可以作为第三方包使用 jpadilla.github.io/django-rest-framework-jsonp
        猜你喜欢
        • 2015-03-29
        • 2018-03-23
        • 2014-12-08
        • 1970-01-01
        • 2016-08-27
        • 2018-07-13
        • 2016-05-30
        • 2013-09-20
        • 2013-02-16
        相关资源
        最近更新 更多