什么叫错误处理
比如别人在访问我们的网页时,发送了一个不存在的url,那么我们会返回一个404错误的页面。当然除了404错误还有其他的错误。
就像慕课网,简书等网站,当我们输入不存在的url时,就会返回一个后台已经定义好的模板页面。
常用的错误码:
- 404:服务器没有指定的url。
- 403:没有权限访问相关的数据。
- 405:请求的method错误。
- 400:bad request,请求的参数错误。
- 500:服务器内部错误,一般是代码出bug了。
- 502:一般部署的时候见得比较多,一般是nginx启动了,然后uwsgi有问题。
自定义错误模板:
在碰到比如404,500错误的时候,想要返回自己定义的模板。那么可以直接在templates文件夹下创建相应错误代码的html模板文件。那么以后在发生相应错误后,会将指定的模板返回回去。
直接在templates目录下面新建两个html文件,一个叫404.html,另一个叫500.html。注意,名字必须为这两个名字。
然后在里面随便写点东西,当我们访问一个127.0.0.1下一个找不到的页面时,就会跳转至404.html,当我们内部代码出现问题时,就会跳转至500.html页面。内部代码出现的问题例如:某个数除于0等错误!
注意: 这个时候我们必须修改settings.py中的DEBUG和添加允许访问的域名。
DEBUG = False
ALLOWED_HOSTS = ['127.0.0.1']
然后才能看到我们想要看到的效果。
如果出现了除404、500的错误,那么我们应该怎样处理呢?
我的习惯是在app的同级目录下新建一个package
,名字叫做errors
用来存储除404,或 500之外的所有错误信息,这个package中的文件包括以下信息。
这个errors就像是一个app,可以做映射等操作。
然后我们就可以在views中写视图函数,urls中做映射,templates中写模板,这里模板的名字就可以随便取名了,会在views中渲染模板。
注意: 一定要将新建的这个包放入settings中,否则会读取不到模板。
剩下的写视图函数,添加映射相信大家都是会的,定义好了这些之后当我们出现了某些错误之后我们就可以返回我们自定义的错误模板了。