2013-05-29 80 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

你是什麼意思的「參考」的網址?你想要發生什麼? –

+0

我想要做的是從模板加載一個URL。在這種情況下,我想加載一個json文件。來自模板的URL正在由urlconf處理。有什麼辦法可以繞過嗎? –

+0

現在我更加困惑。你在響應中做的是告訴用戶瀏覽器做什麼 - 通常顯示一些HTML,但也可以重定向到其他URL。你想告訴瀏覽器要做什麼? –

回答

2

您可以使用HttpResponseRedirect將用戶重定向到提供的URL。

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文件,你想知道如何做到這一點。

好的,所以如果這個文件在你的服務器上,那麼你將不得不使用static url標籤。如果要加載來自一個地方,是不是你的服務器上的此JSON文件,只是把完整網址,像這樣:現在http://www.google.com

,如果說JSON文件是您的服務器上,那麼它是一個單獨的問題。在這種情況下,你正在處理一個靜態文件。而here是一個很好的地方,你可以瞭解靜態文件。

但是,如果這個JSON文件改變了,那麼你完全有一個不同的問題。

0

你還沒有想到瀏覽器可以做什麼的趨勢。當然,瀏覽器無法訪問服務器文件系統中的內容。它只能加載由某些內容提供的內容,不管它是Django,靜態媒體服務器還是外部服務器。

但我不明白你爲什麼要Django重定向到這個內容。您可以直接從Javascript加載JSON,也可以從視圖中的文件系統加載JSON並將其傳遞到您的模板,以便將其包含在頁面內容中。