详解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 相关文章推荐
Ubuntu下使用Python实现游戏制作中的切分图片功能
Mar 30 Python
详解tensorflow载入数据的三种方式
Apr 24 Python
python脚本开机自启的实现方法
Jun 28 Python
使用Python opencv实现视频与图片的相互转换
Jul 08 Python
python 实现线程之间的通信示例
Feb 14 Python
Python偏函数Partial function使用方法实例详解
Jun 17 Python
浅谈Python 参数与变量
Jun 20 Python
python接入支付宝的实例操作
Jul 20 Python
python使用布隆过滤器的实现示例
Aug 20 Python
PyTorch 中的傅里叶卷积实现示例
Dec 11 Python
Python爬虫之爬取最新更新的小说网站
May 06 Python
OpenCV-Python直方图均衡化实现图像去雾
Jun 07 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 多维数组排序(usort,uasort)
2010/06/30 PHP
PHP中的替代语法简介
2014/08/22 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
php提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
js setTimeout 常见问题小结
2013/08/13 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
浅谈在fetch方法中添加header后遇到的预检请求问题
2017/08/31 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
Python爬取qq music中的音乐url及批量下载
2017/03/23 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
使用Python 自动生成 Word 文档的教程
2020/02/13 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
什么是聚集索引和非聚集索引
2012/01/17 面试题
党校培训思想汇报
2014/01/03 职场文书
开朗女孩的自我评价
2014/02/10 职场文书
大学生军训感想
2014/02/16 职场文书
幼儿园元旦亲子活动方案
2014/02/17 职场文书
股东协议书范本
2014/04/14 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
2014领导班子四风问题对照检查材料思想汇报
2014/09/21 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
golang json数组拼接的实例
2021/04/28 Golang
解决mysql的int型主键自增问题
2021/07/15 MySQL
Java 数据结构七大排序使用分析
2022/04/02 Java/Android