需求: 实现自定义Django出现请求错误时,返回自定义页面的功能;
解决方法:总共分4步
1、创建html错误页
2、配置settings
3、编写视图
4、配置url
一、在我们的html存放文件夹中添加404.html/403.html/500.html文件
二、修改settings.py中的DEBUG的值
DEBUG = False
ALLOWED_HOSTS = ['*']
注:若是DEBUG=True,则不会生效
三、编写视图,在myapp下编写views.py添加如下代码
def permission_denied(request):
return render(request, 'project_error/403.html')
def page_not_found(request):
return render(request, 'project_error/404.html')
def page_error(request):
return render(request, 'project_error/500.html')
四、配置项目urls.py 添加如下内容
from myapp.views import *
# 定义错误跳转页面
handler403 = permission_denied
handler404 = page_not_found
handler500 = page_error
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
...
]
PS:
修改为DEBUG = False后,css/js 样式无法正常加载问题?
解决链接:官方文档