如何使用django和JSONP从我的其他网站加载内容?

时间:2009-08-28 00:12:08

标签: jquery django json jsonp

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

更多有经验的用户的帮助吗?

修改

我正在努力实现一个持续的过程,在每个网页浏览中将内容从一个网站加载到另一个网站 - 而不是单个转储/加载数据。

3 个答案:

答案 0 :(得分:2)

使用django-rest-interface公开您的JSONP端点。

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

答案 1 :(得分:0)

最佳解决方案是将两个站点放在同一个数据库中。然后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管道中发生了很多。

答案 2 :(得分:0)

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