2013-05-10 433 views
0

我開發一個Web應用程序(用於學習目的),我在堅持一個特定的按鈕被點擊加載新的頁面點擊按鈕後(不重複)

後我使用如何加載其他頁面django 1.4.5 web框架與python 2.7.4 我已經設計了所有的html頁面以及javascript和css文件。

我不知道HttpRequests。研究各種教程,我遇到了這三種方法。

1)

xhr = new XMLHttpRequest(); 
xhr.open("GET","screen2/",false); 
xhr.send(null); 

2)

location.href="/screen2/" 

3)

window.open("/screen2/","_parent"); 

所有的「時間保持功能setup()內,該按鈕的onclick設置爲onclick="setup()"

是的,我評論他們一次只保留其中一個「活着」。

Django的urls.py文件:

urlpatterns = patterns('', 
    url(r'^screen1/$',screen1), 
    url(r'^screen2/$',screen2), 
) 

Django的views.py文件

def screen1(request): 
    f = open(r"mysite/frontend/1st screen.html",'r') 
    html = f.read() 
    return HttpResponse(html) 

def screen2(request): 
    f = open(r'mysite/frontend/2nd Screen.html','r') 
    html = f.read() 
    return HttpResponse(html) 

第二種和第三種方法工作的第不會。我不明白爲什麼。

另外,如何發送相應的腳本和css文件與請求?

回答

1

第一個使用javacript發出ajax請求。該響應包含在JavaScript中。另外兩個正在改變網頁的位置(網址)。

此外:Django提供了一個完全包含的模板引擎和模板加載器,它爲您包裝了所有的模板加載。你不應該需要手動打開文件並閱讀其內容,並返回它像你這樣的字符串是做如下:

def screen2(request): 
    f = open(r'mysite/frontend/2nd Screen.html','r') 
    html = f.read() 
    return HttpResponse(html) 

Django的tutorial提供瞭如何使使用內置函數

Django的模板的exapmle

我假設你沒有做任何配置來提供靜態文件(如何發送相應的腳本和css文件與請求?)。 Django提供瞭如何執行此操作的示例here

+0

瞭解了ajax部分。不,我現在不使用模板。 我以爲你已經回答了發送css和js文件的部分,並且我已經接受了答案,但是讀了50次這個例子,我沒有發現對於像我這樣的新人來說足夠清楚,並且不能夠解決問題呢。請,如果你可以,重新解釋。 – tMJ 2013-05-10 21:58:25