Как я могу использовать django с JSONP для загрузки контента с другого моего сайта? - PullRequest
3 голосов
/ 28 августа 2009

У меня есть два сайта, написанные на Django. Я хочу загрузить контент с одного сайта на другой. Я обнаружил, что для этого лучше всего использовать .getJSON и JSON-P , но я понятия не имею, как соединить эти вещи (Django, jQuery и JSONP).

Любая помощь от более опытных пользователей?

EDIT

Я пытаюсь добиться непрерывного процесса, загружая вещи с одного сайта на другой при каждом просмотре страницы, а не с помощью одного дампа / загружаемых данных.

Ответы [ 3 ]

2 голосов
/ 12 сентября 2009

Для предоставления доступа к конечной точке JSONP используйте django-rest-interface .

Чтобы загрузить его с другого сайта, используйте getJSON * Jquery .

0 голосов
/ 15 сентября 2015

jQuery.ajax () для запроса данных JSON через JSONP. Вам просто нужно указать, что dataType - это 'jsonp' в опциях. На стороне сервера вы просто должны обработать запрос jsonp. Например, вы можете использовать модуль django-jsonp , который предоставляет почти все необходимое для работы с данными jsonp в django.

0 голосов
/ 28 августа 2009

Лучшее решение - поместить оба сайта в одну базу данных. Тогда site2 может просто прочитать базу данных site1. Действительно, сайт2 может включать в себя прикладные программы сайта1, поэтому сайт2 включает все функции сайта1.

Если по какой-то причине вы не можете заставить site1 и site2 совместно использовать общую базу данных, то site2 должен получить данные от site1, запросив их через HTTP.

В приложении site2 вы используете тот же urls.py, что и site1. Однако функции просмотра сайта2 используют urllib2 для отправки запросов HTTP GET и POST к сайту1. Как только функция представления 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-конвейерах.

...