2009-08-28 5 views
3

私はDjangoで書かれた2つのサイトを持っています。私が望むのは、あるサイトから別のサイトにコンテンツを読み込むことです。これを行う最良の選択は、.getJSONJSON-Pですが、私はこのこと(Django、jQuery、JSONP)をどのようにまとめるべきかわかりません。JSONPでdjangoを使用して他のウェブサイトからコンテンツを読み込むにはどうすればよいですか?

終了時のユーザーからの助けを借りてください。

EDIT

私はすべてのページビュー上の別に一つのサイトからロードされたものとの継続的なプロセスachiveしようとしている - ない単一のダンプ/ loaddataのものを。

答えて

0

最高の解決策は、両方のサイトを同じデータベースに配置することです。次に、site2は単にsite1のデータベースを読み取ることができます。実際、site2にはsite1アプリケーションプログラムが含まれていて、site2にはすべてのsite1機能が含まれています。

何らかの理由でsite1とsite2に共通のデータベースを共有させることができない場合、site2はHTTP経由でサイト1からデータを取得する必要があります。

site2アプリケーションでは、site1と同じurls.pyを使用します。ただし、site2ビュー関数は、urllib2を使用してsite1にHTTP GETおよびPOST要求を行います。 site2ビュー関数がsite1からの応答を受け取ると、単にそれを返します。

サイト2のアプリケーションは、次のように表示されます。

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パイプラインで多く発生します。

+0

私はあなたが私を少し誤解したと思います。 プロジェクト#1のビューで提供されたデータが変更されているため、「ライブ」コンテンツをロードしたいので、プロジェクト#2にも表示する必要があります。単一の操作ではなく、むしろより進行中のプロセス –

2

JSONPエンドポイントを公開するには、django-rest-interfaceを使用してください。

他のサイトから読み込むにはJquery's getJSONを使用してください。

0

jQuery.ajax() JSONPを介してjsonデータをリクエストする。オプションでdataTypeが 'jsonp'であることを指定するだけです。サーバー側では、jsonpリクエストを処理するだけです。たとえば、django-jsonpモジュールを使用すると、djangoでjsonpデータを扱うために必要なものがほとんどすべて提供されます。

関連する問題