Django开发的网站设置网站404页面、500页面
发布时间:2021-03-21
浏览量: 1310
文章分类: python
通常来说,一般我部署的网站都是采用Django、Uwsgi、Nginx,不过最近其实我又喜欢用上Django、Daphne、Nginx来进行部署。原因还是Daphne感觉更加简单,而且还是基于twisted实现。。话题扯的有点远了。。关于部署的以后在说吧。
回到这个文章的问题,最早之前关于404\500的问题都是基于nginx来进行设置的。类似下面这种
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
这样虽然也没问题,但是毕竟本身不属于程序的一部分,所以在后续修改的时候就会出现很多问题了。在翻看网上的资料的时候,找到了更好的解决办法。直接基于Django内置实现。 + 首先还是正常创建视图
class WebPageNotIsExceptView(View):
# 网页 404\500 的错误处理函数
def get(self,request):
return render(request,'404.html')
这样写有一个好处,就是404.html可以继续在Django的template里面进行管理,继续继承base.html。
- 在url.py进行设置
from django.conf.urls import handler404,handler500 # 处理 404、500错误的异常
urlpatterns = [
...
]
handler404 = exception_handling_view.WebPageNotIsExceptView.as_view()
handler500 = .... #对应处理函数
按照上面这2步就可以轻松实现了。但是需要注意,如果DEBUG=True貌似是不能测试的,需要关闭Debug才可以。如果你想本地测试,可以先创建一个url路径为404的地址进行测试。测试开发完毕 在去掉这个url映射即可。
因为我的站点是没有制作这个功能的。 具体的实现效果可以参考 广州网站建设 来看看,你可以在打开后,url后面随便输入点错误的路径看看 404 是如何返回的。