使用 Django 找不到页面消息
如果用户为站点输入随机网址(http://testurl/cdsdfsd),如何发出找不到页面。我有任何更改 settings.py 或如何处理这个..
If a user type a random url(http://testurl/cdsdfsd) for a site ,how to issue page not found.I there any changes settings.py or how to handle this..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
django
教程
和docs
有您应该阅读的部分。您需要覆盖默认的 404 视图。
在你的 urlconf 中:
The django
tutorial
anddocs
have sections you should read.You need to override the default 404 view.
in your urlconf:
默认情况下,django 正在渲染
404.html
模板。在找到模板的任何位置创建此文件。例如,您可以在 django 项目根目录中创建templates
目录,然后将其添加到settings.py
中的TEMPLATE_DIRS
中:另一种解决方案是编写您的自己的中间件将检查是否有 404 响应,并决定显示什么。如果您想要一个后备解决方案(如静态页面)或使用响应,例如在网站上执行搜索并显示可能的选项,这尤其有用。
这是来自 django.contrib.flatpages 的示例中间件。它检查数据库中是否定义了 url,如果是,则返回此页面,如果没有,则传递并返回默认响应。
By default, django is rendering a
404.html
template. Crete this file anywhere where your templates are found. E.g. you can createtemplates
directory in your django project root, then add it to theTEMPLATE_DIRS
insettings.py
:another solution is to write your own middleware which will check if there was 404 response, and the to decide what to display. This is especially useful if you want to have a fallback solution (like static pages) or to play with the response and e.g. perform a search on the site and show possible options.
here is an example middleware from
django.contrib.flatpages
. it check if url is defined in the database, if so - returns this page if not, pass and return default response.