2012-08-28 56 views
1

我正在開發一個用戶註冊和登錄的應用程序。我已經制作了註冊表單,現在我現在想要創建一個登錄頁面,因此我已經創建了一個login.html文件,現在我希望它被放置在模板中。 因此我創建一個目錄並將其放置在該目錄中家/ HTML /模板/註冊/ login.html的關於Django中模板的問題

settings.py文件的template_dir模板=()是爲:

TEMPLATE_DIRS = (
     '/home/html/templates', 
    ) 

視圖文件

from django.template import loader 
from registration.models import Registration 
from django.http import HttpResponse 

def login(request): 
    t = loader.get_template('registration/login.html') 
    return HttpResponse() 

但是,當我試圖運行此文件作爲本地主機:8000 /註冊/ login.html的我收到404錯誤找不到網頁

url.py文件中給出的網址是:

url(r'^registration/$', 'registration.views.login'), 
+1

你正在返回一個空的HttpResponse() – Ohad

回答

1

Django不提供HTML文件本身。模板必須在view.py上呈現並作爲HttpResponse返回。

所以嘗試:

from django.shortcuts import render 

def login(request): 
    return render(request, 'registration/login.html') 

而且localhost:8000/registration/將返回一個登錄頁面。

見文檔的更多信息關於shortcuts functionstemplate language

+0

那麼我應該怎麼做 – user786

+0

@neeraj請看我更新的答案。 –

+0

**我不喜歡這一點,但它不會從django.template進口裝載機 從django.shortcuts工作** '導入已呈現從registration.models 從django.http進口的HttpResponse 高清登錄進口登記 (請求): 噸= loader.get_template( '註冊/ login.html的') #return的HttpResponse( 「你好,登錄在這裏」) 返回渲染(請求, '註冊/ login.html的')' – user786

0

你得到404因爲你試圖訪問localhost:8000/registration/login.html,而你定義的URL爲url(r'^registration/$', 'registration.views.login'),

urls.py號定義的第一部分中的字符串應該與您從瀏覽器訪問的URL匹配。

在你的情況你應該訪問localhost:8000/registration/

另外,您應該返回正確的http響應而不是空的HttpResponse

+0

謝謝,它的作品! – user786