详解Python的Flask框架中生成SECRET_KEY密钥的方法


Posted in Python onJune 07, 2016

引子
如果遇到了 Must provide secret_key to use csrf错误提醒,原因就是没有设置secret_key ,在代码中加上

app.config[‘SECRET_KEY‘]=‘xxx‘

SECRET_KEY最好不要写在代码中。
最好设置一个config.py文件,从中读取该内容
config.py

CSRF_ENABLED = True
SECRET_KEY = ‘you-will-never-guess‘

app.py

app.config.from_object(‘config‘)

这样就可以防止csrf了。
嗯,接下来我们就来说说这个SECRET_KEY:

Flask生成SECRET_KEY(密钥)的一种简单方法
SECRET_KEY是Flask中比较重要的一个配置值。本文介绍一种比较简单的生成SECRET_KEY的方法。

Session, Cookies以及一些第三方扩展都会用到SECRET_KEY值,这是一个比较重要的配置值,应该尽可能设置为一个很难猜到的值,随机值更佳。

随机的问题在于很难判断什么是真随机。一个密钥应该足够随机。你的操作系统可以基于一个密码随机生成器来生成漂亮的随机值,这个值可以用来做密钥:

>>> import os
>>> os.urandom(24)
'\xca\x0c\x86\x04\x98@\x02b\x1b7\x8c\x88]\x1b\xd7"+\xe6px@\xc3#\\'

把这个值复制粘贴到你的代码,你就搞定了密钥。

设置方法:

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#\\')
Python 相关文章推荐
pandas groupby 分组取每组的前几行记录方法
Apr 20 Python
python 字典修改键(key)的几种方法
Aug 10 Python
Python线程同步的实现代码
Oct 03 Python
django 控制页面跳转的例子
Aug 06 Python
python多线程分块读取文件
Aug 29 Python
python tkinter基本属性详解
Sep 16 Python
Django后端发送小程序微信模板消息示例(服务通知)
Dec 17 Python
keras 特征图可视化实例(中间层)
Jan 24 Python
Python requests设置代理的方法步骤
Feb 23 Python
python中什么是面向对象
Jun 11 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
Aug 07 Python
Pygame Rect区域位置的使用(图文)
Nov 17 Python
Python的Flask框架中配置多个子域名的方法讲解
Jun 07 #Python
python3批量删除豆瓣分组下的好友的实现代码
Jun 07 #Python
python实现多线程的方式及多条命令并发执行
Jun 07 #Python
python多线程方式执行多个bat代码
Jun 07 #Python
使用rst2pdf实现将sphinx生成PDF
Jun 07 #Python
python监控文件或目录变化
Jun 07 #Python
浅析Python中的多条件排序实现
Jun 07 #Python
You might like
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
详解提高使用Java反射的效率方法
2019/04/29 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
2015/12/10 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
Vue js 的生命周期(看了就懂)(推荐)
2019/03/29 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
js实现微信聊天界面
2020/08/09 Javascript
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
python3 pygame实现接小球游戏
2019/05/14 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
应用化学专业职业生涯规划书
2013/12/31 职场文书
户外拓展活动方案
2014/02/11 职场文书
经典促销广告词大全
2014/03/19 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
消防演习通知
2015/04/25 职场文书
普通员工辞职信范文
2015/05/12 职场文书
迎新年主持词
2015/07/06 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python