有关Django中的模板的问题

时间:2012-08-28 10:22:11

标签: python django django-templates django-views

我正在为用户注册和登录开发一个应用程序。我已经制作了注册表单,现在我现在想要创建一个登录页面,因此我已经创建了一个login.html文件,现在我希望它是放在模板中。 因此,我创建了一个目录并将其放在该目录中 home / html / templates / registration / login.html

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()

但是当我尝试将此文件作为 localhost:8000 / registration / login.html 运行时,我收到404错误找不到页面

url.py 文件中提供的网址为:

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

2 个答案:

答案 0 :(得分: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

的详情,请参阅文档

答案 1 :(得分:0)

您收到404,因为您在将网址定义为localhost:8000/registration/login.html时尝试访问url(r'^registration/$', 'registration.views.login'),

urls.py中定义的第一部分中的字符串而非正则表达式应与您从浏览器访问的URL匹配。

在您的情况下,您应该访问localhost:8000/registration/

此外,您应该返回正确的http响应,而不是清空HttpResponse