django html页面 404,django2配置全局404

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

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

AAffA0nNPuCLAAAAAElFTkSuQmCC

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

AAffA0nNPuCLAAAAAElFTkSuQmCC

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

AAffA0nNPuCLAAAAAElFTkSuQmCC

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值