文章目录
- 1. 创建演示的环境
- 2. 标准的错误页面
- 3. 自定义错误页面
在使用Django框架进行项目开发时,有时候如果程序编写错误或者浏览器发送给Django的请求有错误,那么框架会在浏览器上显示详细的错误信息,如下面所示:如果浏览器向Django框架请求了一个不存在的资源
bindex
,则Django会返回给浏览器这样的错误:
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/bindex
Using the URLconf defined in test4.urls, Django tried these URL patterns, in this order:
The current path,
- admin/
- ^ ^index$
bindex
, didn’t match any of these.
You’re seeing this error because you have DEBUG = True in your Django settings file. Change that to
, and Django will display a standard 404 page.
False
上述信息对于开发者而言很便于定位并解决问题,但是对于前端用户来说会让人觉得莫名其妙。
1. 创建演示的环境
为了演示如何在Django中修改其提供的默认错误页面,也便于后续演示新的知识点,这里按照下列步骤重新创建一个项目:
- 【Django入门】——从零开始创建并启动一个Django项目,创建一个名为test4的项目,新建并注册一个名为
的应用;booktest
- 【Django入门】——Django中视图函数和模板文件的使用,创建模板目录、进行模板目录的配置、完成URL的配置、编写测试用
视图函数;index
- 【Django入门】——配置Django使用MySQL数据库,配置Django项目使用MySQL数据库
。db4_test4
2. 标准的错误页面
实际上,想要修改Django提供的默认错误页面的方法,在上述Django给出的默认错误信息中已经给出:
- You’re seeing this error because you have
DEBUG = True
in your Django settings file.
你正在看到的这个错误是因为你将Django项目设置文件中的
字段设置成了
DEBUG
。
True
- Change that to
False
, and Django will display a standard 404 page.
将
改为
DEBUG
,则Django将会展示一个标准的404页面。
False
因此,首先将项目
settings.py
文件中的
DEBUG
字段改为
False
:
# settings.py
......
# SECURITY WARNING: don't run with debug turned on in production!
# DEBUG = True
DEBUG = False
ALLOWED_HOSTS = ['*']
......
实际上,上述代码还将
ALLOWED_HOSTS
字段设置成了
['*']
,这也是很直观的,因为当你未进行此额外设置时,Django框架会给你如下提醒:
随后,如果浏览器再发起上述一样的请求,则会受到一个标准的错误页面:
Not Found
The requested resource was not found on this server.
3. 自定义错误页面
实际上如果想要显示自定义的页面,则需要在
templates
目录下自定义一个
404.html
文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>404错误页面</title>
</head>
<body>
<h1>找不到您所请求的页面:{{request_path}}</h1>
</body>
</html>
此时,浏览器再次发起和上述一样的错误请求时,将看到如下自定义错误信息:
找不到您所请求的页面:/bindex
上述设计的错误页面仅为404一类,实际上对于其他类型的错误,也可以通过类型的方式来实现。