引子
如果遇到了 Must provide secret_key to use csrf錯誤提醒,原因就是沒有設置secret_key ,在代碼中加上
1
|
app.config[‘SECRET_KEY‘]=‘xxx‘ |
SECRET_KEY最好不要寫在代碼中。
最好設置一個config.py文件,從中讀取該內容
config.py
1
2
|
CSRF_ENABLED = True SECRET_KEY = ‘you - will - never - guess‘ |
app.py
1
|
app.config.from_object(‘config‘) |
這樣就可以防止csrf了。
嗯,接下來我們就來說說這個SECRET_KEY:
Flask生成SECRET_KEY(密鑰)的一種簡單方法
SECRET_KEY是Flask中比較重要的一個配置值。本文介紹一種比較簡單的生成SECRET_KEY的方法。
Session, Cookies以及一些第三方擴展都會用到SECRET_KEY值,這是一個比較重要的配置值,應該盡可能設置為一個很難猜到的值,隨機值更佳。
隨機的問題在于很難判斷什么是真隨機。一個密鑰應該足夠隨機。你的操作系統可以基于一個密碼隨機生成器來生成漂亮的隨機值,這個值可以用來做密鑰:
1
2
3
|
>>> import os >>> os.urandom( 24 ) '\xca\x0c\x86\x04\x98@\x02b\x1b7\x8c\x88]\x1b\xd7"+\xe6px@\xc3#\\' |
把這個值復制粘貼到你的代碼,你就搞定了密鑰。
設置方法:
1
2
3
4
5
6
|
app = Flask(__name__) app.config[ 'SECRET_KEY' ] = '\xca\x0c\x86\x04\x98@\x02b\x1b7\x8c\x88]\x1b\xd7"+\xe6px@\xc3#\\' # or app.secret_key = '\xca\x0c\x86\x04\x98@\x02b\x1b7\x8c\x88]\x1b\xd7"+\xe6px@\xc3#\\' # or app.config.update(SECRET_KEY = '\xca\x0c\x86\x04\x98@\x02b\x1b7\x8c\x88]\x1b\xd7"+\xe6px@\xc3#\\' ) |