2009-11-02 76 views
0

我正在使用Django 1.1.1編寫一個GUI應用程序。可能是什麼問題(Django觀點)...?

這是views.py:

from django.http import HttpResponse 

def mainpage(request): 
    f=open('pages/index.html','r').readlines() 
    out='''''' 
    for line in file: 
     out+=line 

    print out 
    return HttpResponse(out) 

我試圖加載的index.html的內容是GUI應用程序文件夾中的文件夾頁面中。

我的項目的urls.py是

from django.conf.urls.defaults import * 
from gui.views import * 

urlpatterns = patterns('', 

    (r'^/$', mainpage) 
) 

當我運行服務器,我收到了404錯誤根網站。 如何通過視圖加載index.html文件?

回答

0

Got it! ;)

看來,主頁面函數實際上運行在urls.py(因爲它從views.py中導入),所以我必須提供的路徑是gui/pages/index.html。我仍然有一個問題,「類型的對象不是可迭代」,但下面的工作:

def mainpage(request): 
    f=open('gui/pages/index.html','r').readlines() 
    return HttpResponse(f) 

和URL模式爲r「^ $」所以它的工作對http://localhost:8080/本身。

3

如果您需要的HTML頁面只是簡單的輸出,這可以通過簡單地把以下內容urls.py來實現:

(r'^$', 'direct_to_template', {'template': 'index.html'})

+0

打印輸出聲明從不起作用..可能是什麼問題? – Sriram 2009-11-02 19:36:54

+0

我評論了主頁func的那些行,並且只是放了一個HttpResponse('hello')。現在也是根視圖不工作,但本地主機:8080 //工作 – Sriram 2009-11-02 19:43:27

+0

我再次取消註釋,並添加返回HttpResponse(出) 現在它說'沒有這樣的文件或目錄',問題必須在打開文件.. 。但在python解釋器上嘗試過,它工作正常。 – Sriram 2009-11-02 19:46:25

1

對於根頁面不使用r'^/$',只是r'^$',因爲這個^的意思是「在域和SLASH之後字符串的開始」(如果你在本地主機上運行應用程序,則在127.0.0.1/之後)。這就是爲什麼localhost:8080//適合你。

編輯:也檢查你的路徑。你在view.py的同一個目錄中有'pages'目錄嗎?

無論如何:似乎你正在嘗試做一些壞事和對付Django架構。有關在Django中編寫您的第一個應用程序的教程,請參閱here

+0

謝謝,但最後我發現了我的出路...如果你之前發佈了一點,它會有所幫助..哈哈;) – Sriram 2009-11-02 19:58:31

0

您在視圖中的實際代碼不正確。這是我搞掂版本:

from django.http import HttpResponse 

def mainpage(request): 
    lines=open('loader/pages/index.html','r').readlines() 
    out='''''' 
    for line in lines: 
     out+=line 

    print out 
    return HttpResponse(out) 

注意,在你的代碼,從文件中讀取行:

f=open('pages/index.html','r').readlines() 

您打開該文件並讀取線到f中,然後嘗試迭代在線。另一個改變只是讓我的路徑正確的索引文件。

如果您想要提供靜態頁面,您可能需要閱讀此http://docs.djangoproject.com/en/dev/howto/static-files/

+0

你是對的..但還有另一個問題...我需要找出函數被調用的上下文,它是urs.py n它是1個文件夾了..所以我不得不將父文件夾添加到文件路徑中。 – Sriram 2009-11-02 20:03:24

+0

在我的評論中更正urls.py – Sriram 2009-11-02 20:05:05

相關問題