天天看点

【Django入门】——修改Django默认提供的错误页面1. 创建演示的环境2. 标准的错误页面Not Found3. 自定义错误页面找不到您所请求的页面:/bindex

文章目录

  • 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:

  1. admin/
  2. ^ ^index$
The current path,

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

False

, and Django will display a standard 404 page.

上述信息对于开发者而言很便于定位并解决问题,但是对于前端用户来说会让人觉得莫名其妙。

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

    改为

    False

    ,则Django将会展示一个标准的404页面。

因此,首先将项目

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一类,实际上对于其他类型的错误,也可以通过类型的方式来实现。