详解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 相关文章推荐
web.py在模板中输出美元符号的方法
Aug 26 Python
Python使用django获取用户IP地址的方法
May 11 Python
python监控文件并且发送告警邮件
Jun 21 Python
python版飞机大战代码分享
Nov 20 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 Python
从0开始的Python学习016异常
Apr 08 Python
python数据挖掘需要学的内容
Jun 23 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
Aug 16 Python
python 遍历pd.Series的index和value
Nov 26 Python
Python做图像处理及视频音频文件分离和合成功能
Nov 24 Python
基于PyQT5制作一个桌面摸鱼工具
Feb 15 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高效率写法(详解原因)
2013/06/20 PHP
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
php 数组处理函数extract详解及实例代码
2016/11/23 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
jquery eval解析JSON中的注意点介绍
2013/08/23 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
返回上一个url并刷新界面的js代码
2020/09/12 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
python基于xml parse实现解析cdatasection数据
2014/09/30 Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
2015/12/31 Python
Python文件与文件夹常见基本操作总结
2016/09/19 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
详解python的四种内置数据结构
2019/03/19 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
Python: 传递列表副本方式
2019/12/19 Python
pytorch实现seq2seq时对loss进行mask的方式
2020/02/18 Python
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
标准版离职证明书
2014/09/12 职场文书
公司放假通知怎么写
2015/04/15 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书
英语导游欢迎词
2015/09/30 职场文书
Python+pyaudio实现音频控制示例详解
2022/07/23 Python