3

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

有更多经验丰富的用户提供帮助吗?

编辑

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

4

3 回答 3

2

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

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

于 2009-09-12T05:23:35.237 回答
0

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

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

在 site2 应用程序中,您使用与urls.pysite1 相同的方法。但是,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 管道中经常发生。

于 2009-08-28T01:01:35.927 回答
0

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

于 2015-09-15T11:47:36.570 回答