2013-05-29 2 views
0

Я пытаюсь найти способ написать правильное представление в Django, которое ссылается на внешний URL-адрес.Ссылка на внешние URL-адреса

Для примера, как правило, я мог бы написать простой вид следующим образом:

from django.http import HttpResponse 
def my_view(request): 
    if True: 
     return HttpResponse('<h1 >hello world</h1 >') 

В качестве альтернативы, мы можем мы можем ссылаться на шаблон с render_to_response. Как мы ссылаемся на внешний URL-адрес, например, на «google»?

+0

Что вы подразумеваете под «ссылкой» на URL? Что вы хотите? –

+0

то, что я хотел бы сделать, это загрузить URL-адрес из шаблона. В этом случае я хотел бы загрузить json-файл. URL-адрес шаблона обрабатывается urlconf. Есть ли способ обойти это? –

+0

Теперь я еще более смущен. Что вы делаете в ответ, скажите браузеру пользователей, что делать - обычно отображает некоторый HTML, но альтернативно перенаправляет на какой-то другой URL-адрес. Что ** точно ** вы хотите сказать браузеру делать? –

ответ

2

Вы можете использовать HttpResponseRedirect для перенаправления пользователя на предоставленный адрес.

from django.http import HttpResponseRedirect 

def my_view(request): 
    if True: 
     return HttpResponseRedirect('http://stackoverflow.com') 
+0

Что произойдет, если я захочу обратиться к json-файлу в файловой системе моего сервера? –

+0

Я не уверен, что вы подразумеваете под этим. В чем проблема, которую вы пытаетесь решить? – sdolan

+0

Хорошо, позвольте мне быть более ясным. У меня есть шаблон, который загружает функцию JQUERY. Функция зависит от URL-адреса для загрузки данных json. Когда URL-адрес вызывается, он проходит через URLCONF. Проблема в том, что я не знаю, что такое «ответ» в представлении?Мне нужно, чтобы представление обращалось к URL-адресу, чтобы шаблон мог загружать данные JSON. –

1

Судя по вашим комментариям на первый ответ, вот что я думаю, что это ваша проблема:

Вы хотите загрузить статический JSON файл, и вы хотите знать, как это сделать.

Хорошо, так что если этот файл находится на вашем сервере, тогда вам придется использовать тег url static. Если вы хотите загрузить этот файл JSON с места, которого нет на вашем сервере, просто введите полный веб-адрес: http://www.google.com

Теперь, если этот JSON-файл находится на вашем сервере, отдельный выпуск. В этом случае вы имеете дело со статическим файлом. И here - прекрасное место, где вы можете узнать о статических файлах.

Если, однако, этот файл JSON изменяется, тогда у вас есть другая проблема.

0

Вы все еще не думаете о тенденциях, которые может сделать браузер. Конечно, браузер не может получить доступ к файловой системе вашего сервера. Он может загружать только контент, который обслуживается чем-то, будь то Django, ваш статический медиа-сервер или внешний сервер.

Но я не понимаю, почему вы хотите, чтобы Django перенаправлял этот контент. Либо вы загружаете JSON прямо из Javascript, либо загружаете его из файловой системы в своем представлении и передаете его в свой шаблон, чтобы он уже был включен в содержимое страницы.

Смежные вопросы