【问题标题】:How can I use django with JSONP to load content from my other website?如何使用带有 JSONP 的 django 从我的其他网站加载内容?
【发布时间】:2010-11-23 14:00:38
【问题描述】:

我有两个用 Django 编写的网站。我想要的是将内容从一个站点加载到另一个站点。我发现最好的选择是使用 .getJSONJSON-P 但我不知道如何将这些东西(Django、jQuery 和 JSONP)放在一起.

更多经验丰富的用户有什么帮助吗?

编辑

我正在尝试实现一个持续的过程,即在每次网页浏览时将内容从一个站点加载到另一个站点 - 而不是单个转储/加载数据的东西。

【问题讨论】:

    标签: jquery django json jsonp


    【解决方案1】:

    jQuery.ajax() 通过 JSONP 请求 json 数据。您只需要在选项中指定 dataType 为 'jsonp'。在服务器端,您只需要处理 jsonp 请求。例如,您可以使用django-jsonp 模块,它提供了在 django 中处理 jsonp 数据所需的几乎一切。

    【讨论】:

      【解决方案2】:

      要公开您的 JSONP 端点,请使用 django-rest-interface

      要从其他站点加载它,请使用Jquery's getJSON

      【讨论】:

        【解决方案3】:

        最好的解决方案是将两个站点放在同一个数据库中。然后site2 可以简单地读取site1 的数据库。确实,site2可以包含site1的应用程序,使得site2包含了site1的所有功能。

        如果由于某种原因,您无法让 site1 和 site2 共享一个公共数据库,那么 site2 必须通过 HTTP 请求从 site1 获取数据。

        在 site2 应用程序中,您使用与 site1 相同的 urls.py。然而,site2 视图函数使用urllib2 向site1 发出HTTP GET 和POST 请求。一旦 site2 视图函数收到来自 site1 的响应,它就会简单地返回它。

        您的 site2 应用程序可能看起来像这样。

        def someSite2View( request ):
            site1= urllib2.open( "http://site1/" + request.path  )
            data= site1.read()
            # you have to parse the data to extract the headers
            return Response( headers and data )
        

        这出人意料地可行。这种转发在 HTTP 管道中经常发生。

        【讨论】:

        • 我想你误解了我一点。我想加载“实时”内容,因为项目#1 中的视图提供的数据正在发生变化,我需要它也显示在项目#2 中。不是单一的操作——而是更多的持续过程
        猜你喜欢
        • 2013-04-02
        • 2019-04-18
        • 2014-12-11
        • 1970-01-01
        • 1970-01-01
        • 2017-11-03
        • 2012-01-31
        • 2018-10-02
        • 1970-01-01
        相关资源
        最近更新 更多