2009-08-28 3 views
3

장고로 작성된 두 개의 사이트가 있습니다. 내가 원한 것은 한 사이트에서 다른 사이트로 콘텐츠를로드하는 것입니다. 이 작업을 수행하는 가장 좋은 방법은 입니다. getJSONJSON-P하지만이 항목 (Django, jQuery 및 JSONP)을 함께 넣는 방법을 알지 못합니다.django를 JSONP와 함께 사용하여 다른 웹 사이트의 컨텐츠를로드하려면 어떻게해야합니까?

더 많은 만성적 인 사용자의 도움이 필요하세요?

나는 일이 모든 페이지 뷰에 다른에 하나의 사이트에서로드와 지속적인 프로세스 실현하려 노력하고

편집 -하지 단일 덤프/loaddata 물건을.

답변

0

최상의 솔루션은 두 사이트를 동일한 데이터베이스에 저장하는 것입니다. 그러면 site2는 site1의 데이터베이스를 간단히 읽을 수 있습니다. 실제로 site2에는 site1 응용 프로그램이 포함될 수 있으며 site2에는 site1 기능이 모두 포함됩니다.

어떤 이유로 사이트 1과 사이트 2가 공통 데이터베이스를 공유하지 못하는 경우 site2는 HTTP를 통해 요청하여 site1에서 데이터를 가져와야합니다.

site2 응용 프로그램에서 site1과 동일한 urls.py을 사용합니다. 그러나 site2보기 기능은 urllib2을 사용하여 site1에 HTTP GET 및 POST 요청을합니다. site2 view 함수가 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 파이프 라인에서 많이 발생합니다.

+0

나는 너를 약간 오해 한 것 같아. 프로젝트 # 1에서 뷰에 의해 제공된 데이터가 변경되어 "라이브"컨텐트를로드하려고하므로 # 2 프로젝트에도 표시해야합니다. 단일 작업이 아니라 오히려 지속적인 프로세스 –

0

jQuery.ajax() JSONP를 통해 json 데이터를 요청하십시오. 옵션에서 dataType이 'jsonp'임을 지정하면됩니다. 서버 측에서는 jsonp 요청을 처리해야합니다. 예를 들어, django-jsonp 모듈을 사용하면 django에서 jsonp 데이터로 작업하는 데 필요한 거의 모든 것을 제공합니다.

관련 문제