django的403/404/500错误自定义页面的配置

django的403/404/500错误自定义页面的配置

要实现标题的功能,总共分三步:
1.创建html错误页
2.配置settings
3.编写视图
4.配置url

我的开发环境:
django1.10.3
python2.7.12

前期工作

创建项目及app

$ django-admin.py startproject Test
...
$ python manage.py startapp myapp
...

1.创建html错误页

在Test目录下,创建templates文件夹
在文件夹下创建404.html/403.html/500.html文件

2.配置settings

配置tamplates文件路径、关闭Debug、配置allowrd_hosts

DEBUG = False  # 关闭Debug
...
TEMPLATES = [
    {
        ...
        'DIRS': ['templates/'],  # 配置tamplates文件路径       
        ...
    },
]
...
ALLOWED_HOSTS = [  
    '192.168.1.12',  # 配置allowrd_hosts
]

3.编写视图

在myapp下编写views.py

from django.shortcuts import render


def page_not_found(request):
    return render(request, '404.html')


def page_error(request):
    return render(request, '500.html')


def permission_denied(request):
    return render(request, '403.html')

4.配置url

...
from myapp.views import *

handler403 = permission_denied
handler404 = page_not_found
handler500 = page_error
...

ok!运行一下,看看结果!

Django发生404500错误时,它会自动查找并使用默认的错误页面来响应请求。如果您想自定义这些错误页面,您可以使用以下方法: 1. 在您的templates目录下创建一个名为404.html或500.html的模板文件。例如,要创建自定义404页面,请按照以下步骤操作: - 在您的templates目录下创建一个名为404.html的文件。 - 在404.html文件中编写您的404错误页面的HTML代码。例如: ```html <!DOCTYPE html> <html> <head> <title>404 Not Found</title> </head> <body> <h1>404 Not Found</h1> <p>The requested URL was not found on this server.</p> </body> </html> ``` 2. 在您的settings.py文件中配置您的自定义错误页面。例如: ```python # your other settings # 404 error page handler404 = 'myapp.views.my_custom_404_view' # 500 error page handler500 = 'myapp.views.my_custom_500_view' ``` 在这个例子中,我们配置了handler404和handler500变量,它们分别指向我们自定义404500错误处理视图。这告诉Django,在出现404500错误时,请使用我们自定义错误页面来响应请求。 3. 在您的views.py文件中定义您的自定义404500错误处理视图。例如: ```python from django.shortcuts import render def my_custom_404_view(request, exception=None): return render(request, '404.html', status=404) def my_custom_500_view(request): return render(request, '500.html', status=500) ``` 在这个例子中,我们定义了两个视图函数,它们分别用于处理404500错误。这些视图函数将渲染我们的自定义错误页面并返回适当的状态码。 注意:如果您只想自定义404500错误页面中的一项,只需配置handler404或handler500变量和相应的视图函数即可。 通过这种方式,当Django发生404500错误时,它将使用我们的自定义错误页面来响应请求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值