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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Refer to: www.threemeal.com/blog/12/ 中間件 中間件是一個鉤子框架,它們可以介...
    蘭山小亭閱讀 16,575評論 9 165
  • 中間件是一個鉤子框架,它們可以介入Django 的請求和響應處理過程。它是一個輕量級、底層的“插件”系統,用于在全...
    低吟淺唱1990閱讀 536評論 0 0
  • Django 文檔協作翻譯小組人手緊缺,有興趣的朋友可以加入我們,完全公益性質。交流群:467338606網站:h...
    布客飛龍閱讀 788評論 0 37
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,973評論 19 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,767評論 18 399