Python 如果在django的url.py中找不到,请将所有URL重定向到404.html

Python 如果在django的url.py中找不到,请将所有URL重定向到404.html,python,regex,django,django-urls,Python,Regex,Django,Django Urls,如果url.py中不存在任何类型的url模式,而不是django显示错误,我如何将其重定向到创建的页面“404.html”页面。创建一个视图,该视图将呈现您创建的404.html,并在url.py中将其设置为handler404 handler404 = 'app.views.404_view' 如果启用调试,Django将呈现调试视图。否则,如果404页面不存在,它将按照handler404中为所有类型的页面指定的方式呈现404页面 Django关于的文档 检查答案以获得完整的示例。在you

如果url.py中不存在任何类型的url模式,而不是django显示错误,我如何将其重定向到创建的页面“404.html”页面。

创建一个视图,该视图将呈现您创建的404.html,并在url.py中将其设置为handler404

handler404 = 'app.views.404_view'
如果启用调试,Django将呈现调试视图。否则,如果404页面不存在,它将按照handler404中为所有类型的页面指定的方式呈现404页面

Django关于的文档


检查答案以获得完整的示例。

在your views.py中,只需添加以下代码(无需更改url.py中的任何内容)

将自定义404.html放在templates目录中


转到项目
settings.py
并将
DEBUG=True
设置为
DEBUG=False
然后Django将所有未设置的模式重定向为“未找到”

另外,如果您想自定义404模板,请在项目中
url.py

from django.shortcuts import render_to_response
from django.template import RequestContext

def handler404(request):
    response = render_to_response('404.html', {},
                                  context_instance=RequestContext(request))
    response.status_code = 404
    return response
设置

handler404='app.views.404\u view'

然后在您的项目中
view.py

from django.shortcuts import render_to_response
from django.template import RequestContext

def handler404(request):
    response = render_to_response('404.html', {},
                                  context_instance=RequestContext(request))
    response.status_code = 404
    return response

最后,在
模板中
添加
404.html
,并用您想要显示给最终用户的内容填充它。

无需在
视图
url
中更改任何内容。 只需执行这两个步骤,在
设置.py
中执行以下操作

DEBUG = False
ALLOWED_HOSTS = ["*"]

在应用程序目录(本例中为myapp)中,创建
myapp/templates/404.html
,其中
404.html
是您的自定义错误页面。就是这样。

停用
DEBUG
。那就可以了。谢谢,但是有没有一种方法可以不用debug=false来处理404,因为它破坏了我的css,因为静态文件不是这样的loaded@AnkanKumarGiri这在线程中有详细的解释。确保阅读所有答案。切勿在生产中使用允许的_主机=[“*”]