Flask-報錯:RuntimeError: The session is unavailable because no secret key was set.


當我們在編寫Flask項目的時候,一般來說,如果遇到這個錯誤時:

錯誤:RuntimeError: The session is unavailable because no secret key was set.  Set the secret_key on the application to something unique and secret.

網上基本上都是說,在Flask對象app下面設置SECRET_KEY:

app = Flask()
app.secret_key = 'xxxxxxx'

這確實是一種解決方法,可是我的問題來了,我將app的創建封裝在了工廠函數create_app下了,而且我的config.py配置文件中,也已經設置了SECRET_KEY,但是當我將數據保存在session中,總是會報錯,說我沒有設置SECRET_KEY這個參數:

 

 

 

 

 

 配置完成后,然后啟動項目初始化,也都加載成功了,但是一到保存數據在session中時,就會報錯,找不到SECRET_KEY,找了好幾個小時的解決方法,最后發現了這個方法:

這是Flask的SESSION_TYPE的session存儲格式,一共有這五種:

 

 

我最后在配置文件中添加的存儲類型是:filesystem類型

 

 添加這個類型還會報一個錯:

ModuleNotFoundError: No module named 'werkzeug.contrib'

這個github上說的是:werkzeug高了,我之前用的是1.0.1,上面說降到0.16.0版本,然后我降了版本,確實能夠正常訪問了。

 

應該還可以設置其他類型的session存儲類型,下次可以試試。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM