美文网首页
middleware中间件__init__方法报错的解决办法

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

作者: 紫Qi | 来源:发表于2017-11-10 14:46 被阅读0次

 从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

相关文章

网友评论

      本文标题:middleware中间件__init__方法报错的解决办法

      本文链接:https://www.haomeiwen.com/subject/ldmnrxtx.html