为了账号安全,请及时绑定邮箱和手机立即绑定

django2配置全局404

标签:
Python

在django(不知道什么版本但2.x可以)配置全局404页面的时候,我们往往不需要自己多做处理,只需要在项目目录下的templates目录中引入一个404.html就可以实现自定义的404页面。

但贪心的我显然认为一个静态的页面无法满足我的需求。在我的想法中,一个能够处理请求的方法才是最好的处理。但根据网课老师的教导,我给django的URLconf配置了404相关的配置,可是依然不起效。

https://img1.sycdn.imooc.com//5b8784c9000139de19921332.jpg

我又问了许多大神,都没有人能回答我,于是我使用pycharm进行断点追踪。我发现django2在处理exception会经过这个类,然后其中会调用URLconf的handler相关的变量和状态码拼装(如handler404)进行方法调用。

https://img1.sycdn.imooc.com//5b87824e0001699216221216.jpg

如上图红框当中,django2在callback调用handler404变量指定的方法时,除了传入request参数还有**kwargs(**dict(param_dict, exception=exception))。这就让handler404指定的方法必须加入这个参数,所以要这样写才能够满足404异常处理。

https://img1.sycdn.imooc.com//5b87834c0001cfbc10520330.jpg

之前失败的原因是因为def中只有request一个参数



点击查看更多内容
5人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消