middleware中间件__init__方法报错的解决办法

 从Django 1.9工程移过来的中间件功能,到Django1.11突然不可用了?

TypeError: __init__() takes 1 positional argument but 2 were given

原来是中间件的初始化出现了问题。

赶紧查查Django1.11的文档

Django1.10版本前:

一 个 middleware 类可以包括请求响应过程的四个阶段:request,view,response 和 exception。对应的成员函数:process_request,process_view, process_response 和 process_exception。其中初始化的 __init__初始化函数不需要传参。

Django1.10版本后:

一 个 middleware 类只有一个成员变量get_response,两个成员函数__init__,__call__。

 get_response是__init__时的初始化时的必要参数,在整个访问中只调用1次,__call__执行主要的功能。

可在__call__中调用之前实现的process_request或者process_response方法。


Django 1.11的官网文档:https://docs.djangoproject.com/en/dev/topics/http/middleware/

Django1.9 讲的很清楚的中间件功能:https://www.cnblogs.com/felo/p/5600549.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Refer to: www.threemeal.com/blog/12/ 中间件 中间件是一个钩子框架,它们可以介...
    兰山小亭阅读 16,663评论 9 165
  • 中间件是一个钩子框架,它们可以介入Django 的请求和响应处理过程。它是一个轻量级、底层的“插件”系统,用于在全...
    低吟浅唱1990阅读 3,483评论 0 0
  • Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606网站:h...
    布客飞龙阅读 4,132评论 0 37
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,773评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,139评论 18 399