详解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实现分析apache和nginx日志文件并输出访客ip列表的方法
Apr 04 Python
使用Python中的线程进行网络编程的入门教程
Apr 15 Python
python实现百万答题自动百度搜索答案
Jan 16 Python
详解flask表单提交的两种方式
Jul 21 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
Oct 14 Python
Python sklearn KFold 生成交叉验证数据集的方法
Dec 11 Python
Python集中化管理平台Ansible介绍与YAML简介
Jun 12 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 Python
Python序列类型的打包和解包实例
Dec 21 Python
Django model.py表单设置默认值允许为空的操作
May 19 Python
python mysql中in参数化说明
Jun 05 Python
Python的信号库Blinker用法详解
Dec 31 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
关于Intype一些小问题的解决办法
2008/03/28 PHP
深入PHP autoload机制的详解
2013/06/09 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
thinkPHP5框架路由常用知识点汇总
2019/09/15 PHP
Javascript 面向对象特性
2009/12/28 Javascript
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
采用自执行的匿名函数解决for循环使用闭包的问题
2014/09/11 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
小程序实现悬浮搜索框
2019/07/12 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
[05:06]TI4西雅图DOTA2前线报道 海涛密探LGD训练
2014/07/09 DOTA
Python中django学习心得
2017/12/06 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
英国综合网上购物商城:The Hut
2018/07/03 全球购物
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
医学护理系毕业生求职信
2013/10/01 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
小学生竞选班干部演讲稿
2014/04/24 职场文书
新郎接新娘保证书
2015/05/08 职场文书
接收函
2019/04/22 职场文书
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技