引子
如果遇到了 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#\\' )
|