详解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 相关文章推荐
python用ConfigObj读写配置文件的实现代码
Mar 04 Python
python中合并两个文本文件并按照姓名首字母排序的例子
Apr 25 Python
举例讲解Python的Tornado框架实现数据可视化的教程
May 02 Python
将Python代码嵌入C++程序进行编写的实例
Jul 31 Python
Python MD5加密实例详解
Aug 02 Python
Python配置mysql的教程(推荐)
Oct 13 Python
python 把列表转化为字符串的方法
Oct 23 Python
Pythony运维入门之Socket网络编程详解
Apr 15 Python
python dataframe NaN处理方式
Dec 26 Python
OpenCV Python实现拼图小游戏
Mar 23 Python
详解python tcp编程
Aug 24 Python
Python hashlib和hmac模块使用方法解析
Dec 08 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 has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
2015/02/02 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
2016/02/14 Javascript
ReactNative-JS 调用原生方法实例代码
2016/10/08 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
JavaScript实现弹出广告功能
2017/03/30 Javascript
vue2.0 axios前后端数据处理实例代码
2017/06/30 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
Node.js爬取豆瓣数据实例分析
2018/03/05 Javascript
微信小程序实现换肤功能
2018/03/14 Javascript
vue全局组件与局部组件使用方法详解
2018/03/29 Javascript
vue使用keep-alive实现组件切换时保存原组件数据方法
2020/10/30 Javascript
在Python中编写数据库模块的教程
2015/04/29 Python
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
Django中的用户身份验证示例详解
2019/08/07 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
上海天奕面试题笔试题
2015/04/19 面试题
小学生自我评价范例
2013/09/24 职场文书
大学生简单自荐信
2013/11/10 职场文书
大一学生的职业生涯规划书范文
2014/01/19 职场文书
一年级学生评语
2014/04/23 职场文书
委托书如何写
2014/08/30 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
2015年教师节主持词
2015/07/03 职场文书
使用Ajax实现进度条的绘制
2022/04/07 Javascript