Python 如果在django的url.py中找不到,请将所有URL重定向到404.html
如果url.py中不存在任何类型的url模式,而不是django显示错误,我如何将其重定向到创建的页面“404.html”页面。创建一个视图,该视图将呈现您创建的404.html,并在url.py中将其设置为handler404Python 如果在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
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这在线程中有详细的解释。确保阅读所有答案。切勿在生产中使用允许的_主机=[“*”]