Python Django 1.8如何创建自己的404页面?

Python Django 1.8如何创建自己的404页面?,python,django,http-status-code-404,production,Python,Django,Http Status Code 404,Production,我想创建自己的404页面。 在settings.py中,我添加了: DEBUG = TEMPLATE_DEBUG = False ALLOWED_HOSTS = ['*',] 在URL.py中: handler404 = 'blog.views.handler404' 在views.py中: def handler404(request): return render(request, 'blog/404.html') 我还创建了404.html文件 启动服务器时,我会写入: p

我想创建自己的404页面。 在settings.py中,我添加了:

DEBUG = TEMPLATE_DEBUG = False

ALLOWED_HOSTS = ['*',]
在URL.py中:

handler404 = 'blog.views.handler404'
在views.py中:

def handler404(request):
    return render(request, 'blog/404.html')
我还创建了404.html文件

启动服务器时,我会写入:

python manage.py runserver --insecure
--不安全的做法是提供静态文件(否则就是胡说八道)。但如果我转到不存在的页面,我会得到:

<h1>Not Found</h1><p>The requested URL /post/9/ was not found on this server.</p>
未找到在此服务器上未找到请求的URL/post/9/

我如何解决这个问题?
我使用的是Django 1.8 dunno,如果它改变了任何东西,那么在URL.py中就不需要任何东西了。转到你的root views.py并在那里添加你的handler404方法,不要使用urls.py

参考:

另外,我看不到您的TEMPLATE_DIRS变量,即

TEMPLATE_DIRS = (
    '/path/to/template/files/',
    '/path/to/more/template/files/' 
)

需要确保您的模板位于../blog/。。都被找到了。就我个人而言,我会专门将其作为子目录添加。

您可以将自定义的500.html/404.html放在templates目录中,django将使用这些模板而不是默认的django模板进行渲染。但是404.html与base.html不在同一目录中工作?否则,模板路径不正确是的,它位于同一目录设置DEBUG=False中,并查看是否有任何变化您好,我没有模板dirs变量。我添加了一个新的-TEMPLATE_DIRS=(os.path.join(BASE_DIR,'blog/templates/blog/'),它是相同的