django教程:自定义404和500视图

时间:2013-03-19 10:54:09

标签: http-status-code-404 handler

Windows 7
Python 2.7.3
Django 1.5
python manage.py runserver

我正在关注“https://docs.djangoproject.com/en/1.5/intro/tutorial03/

中提供的教程

在事情变得奇怪之前,我得到了“写一个404(找不到页面)视图”。

我试图找出如何制作自定义404视图。但是,我不确定:

一个。自定义404.html文件应该驻留在哪里。它应该在我的项目目录树中还是在我的Django目录树中。我的项目目录树看起来像这样,

1> mysite  
2>     - mysite  
3>     - polls  
4>         - templates  
5>             - polls  
6>     - templates  
7>         - admin  

目前404.html是@ 6>

B中。必须在哪里进行哪些修改?我知道需要在'root'url conf中设置handler404和handler500。我有一个url.py居住在@ 2>和3> (见上面的树)。假设2>是正确的地方我假设语法如下,

handler404 = 'templates.404'
handler500 = 'templates.500'

还需要设置什么,在哪里?

1 个答案:

答案 0 :(得分:7)

我可以看到你有一点错误,但别担心。

看,试试这个:

handler404 = 'mysite.views.error404'

然后在mysite(第二个mysite)创建一个views.py,如果你没有。在那个views.py中:

from django.shortcuts import render

def error404(request):
    return render(request,'404.html')

就是这样!在模板中,创建该文件并做一些不错的事情!

请记住,仅适用于生产(DEBUG=False),否则django会使用追溯。 对于505来说是一样的,你也许可以尝试handler404 = 'polls.views.see404'然后放入views.py但是你知道,口味是不同的呵呵。

现在,尝试其他方法,例如:urls.py中的评论

#handler404 = 'mysite.views.error404'

并在views.py中删除def。

在模板文件的索引中创建一个简单的404.html。 在生产中运行服务器并产生404错误,发生了什么?