详解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多进程Multiprocessing
Aug 29 Python
详解Python中的四种队列
May 21 Python
Python爬虫框架Scrapy基本用法入门教程
Jul 26 Python
tensorflow 加载部分变量的实例讲解
Jul 27 Python
python实现自动登录
Sep 17 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
Python设计模式之外观模式实例详解
Jan 17 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 Python
python 导入数据及作图的实现
Dec 03 Python
Python3实现mysql连接和数据框的形成(实例代码)
Jan 17 Python
如何用PyPy让你的Python代码运行得更快
Dec 02 Python
Python进程池与进程锁之语法学习
Apr 11 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&mysql(三)
2006/10/09 PHP
php auth_http类库进行身份效验
2009/03/19 PHP
php替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
php集成动态口令认证
2016/07/21 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
js left,right,mid函数
2008/06/10 Javascript
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
jQuery的三种$()
2009/12/30 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
javascript break指定标签打破多层循环示例
2014/01/20 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
JavaScript中数组的22种方法必学(推荐)
2016/07/20 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
浅析JavaScriptSerializer类的序列化与反序列化
2016/11/22 Javascript
js继承实现方法详解
2016/12/16 Javascript
vue单页缓存方案分析及实现
2018/09/25 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
[51:26]VP vs VG 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
详解Python函数作用域的LEGB顺序
2016/05/14 Python
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
教师师德考核自我评价
2014/09/13 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
行政答辩状范文
2015/05/21 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
励志语录:你若不勇敢,谁替你坚强
2019/11/08 职场文书