在django(不知道什么版本但2.x可以)配置全局404页面的时候,我们往往不需要自己多做处理,只需要在项目目录下的templates目录中引入一个404.html就可以实现自定义的404页面。
但贪心的我显然认为一个静态的页面无法满足我的需求。在我的想法中,一个能够处理请求的方法才是最好的处理。但根据网课老师的教导,我给django的URLconf配置了404相关的配置,可是依然不起效。
我又问了许多大神,都没有人能回答我,于是我使用pycharm进行断点追踪。我发现django2在处理exception会经过这个类,然后其中会调用URLconf的handler相关的变量和状态码拼装(如handler404)进行方法调用。
如上图红框当中,django2在callback调用handler404变量指定的方法时,除了传入request参数还有**kwargs(**dict(param_dict, exception=exception))。这就让handler404指定的方法必须加入这个参数,所以要这样写才能够满足404异常处理。
之前失败的原因是因为def中只有request一个参数
点击查看更多内容
5人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦