1

我正在开发一个用于用户注册和登录的应用程序。我已经制作了注册表格,现在我想制作一个登录页面,因此我制作了一个 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 错误 Page not found

url.py文件中给出的 url如下:

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

2 回答 2

1

Django 本身不提供 html 文件。模板必须在 view.py 上以 HttpResponse 的形式呈现和返回。

所以试试:

from django.shortcuts import render

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

并将localhost:8000/registration/返回一个登录页面。

有关快捷方式功能模板语言的更多信息,请参阅文档

于 2012-08-28T10:24:41.743 回答
0

您正在获取,404因为您在localhost:8000/registration/login.html将 url 定义为url(r'^registration/$', 'registration.views.login'),.

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

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

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

于 2012-08-28T10:35:00.297 回答