访问页面错误处理
在一些网站开发中。经常会需要捕获一些错误,然后将这些错误返回比较优美的界面,或者是将这个锠误的请求做一些日志保存。那么我们本节就来讲讲如何实现。
常用的错误码:
404:服务器没有指定的 url。403:没有权限访问相关的数据。405:请求的 method 错误。400: bad request,请求的参数错误。500:服务器内部错误,一般是代码出 bug 了。502:一般部署的时候见得比较多,一般是 nginx 启动了,然后 usgi 有问題。
自定义错误模板
在碰到比如 404,500 错误的时候,想要返回自己定义的模板。那么可以直接在 templates 文件夹下创建相应错误代码的 html 模板文件。那么以后在发生相应错误后,会将指定的模板返回回去。
页面错误解决方案
在 settings.py 文件中输入以下代码:
```
#settings.py
DEBUG=False
# 将DEBUG模式设为False,否则无法使用指定的错误模板
ALLOWED_HOSTS= ['127.0.0.1']
```
在 views.py 中定义函数视图:
# views.py
from django.shortcuts import render
def view_405(request):
return render(request,'errors/405.html',status=405)
在碰到比如 404,500 错误的时候,想要返回自己定义的模板。那么可以直接在 templates 文件夹下创建相应错误代码的 html 模板文件。那么以后在发生相应错误后,会将指定的模板返回回去。
在 templates 文件夹中新建 400.html 和 500.html 文件(ps:文件名必须是 400.html 和 500.html ,不能为其他名称)。
页面显示如下:
出现其他错误例如 400、403、502 错误的解决方法:
-1.新建 Python Package 包命名为 ‘errors’ ,在包文件下新建 urls.py 和views.py 文件。
-2.在 errors包文件夹下的 urls.py 文件下编写 path 代码,示例代码如下:
# errors/urls.py
app_name = 'errors'
# 注意一定要加上 app_name,并且把 app_name 添加到 settings.py 中
urlpatterns=[
path('405.html',views.view_405,name='405'),
path('403.html',views.view_403,name='403')
]
-3.在 views.py 中编写函数视图代码,示例代码如下:
# views.py
from django.shortcuts import render
def view_405(request):
return render(request,'errors/405.html',status=405)
-4.最后在项目文件夹下的 urls.py 中添加 path 代码,示例代码如下:
from django.urls import path,include
fromfrontimportviews
urlpatterns= [
path('',views.index),
path('errors',include('errors.urls')),
]