详解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 相关文章推荐
pycharm 使用心得(九)解决No Python interpreter selected的问题
Jun 06 Python
python在windows下实现ping操作并接收返回信息的方法
Mar 20 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
Apr 23 Python
Python利用前序和中序遍历结果重建二叉树的方法
Apr 27 Python
Python第三方库的安装方法总结
Jun 06 Python
Python 实现购物商城,含有用户入口和商家入口的示例
Sep 15 Python
Python将文本去空格并保存到txt文件中的实例
Jul 24 Python
python实现提取str字符串/json中多级目录下的某个值
Feb 27 Python
Python使用plt.boxplot() 参数绘制箱线图
Jun 04 Python
Python调用系统命令os.system()和os.popen()的实现
Dec 31 Python
VSCODE配置Markdown及Markdown基础语法详解
Jan 19 Python
python源码剖析之PyObject详解
May 18 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 IP及IP段进行访问限制的代码
2008/12/17 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
基于JQuery的cookie插件
2010/04/07 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
python正则中最短匹配实现代码
2018/01/16 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
python的debug实用工具 pdb详解
2019/07/12 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
python能否java成为主流语言吗
2020/06/22 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
python爬取豆瓣电影排行榜(requests)的示例代码
2021/02/18 Python
Python使用tkinter实现小时钟效果
2021/02/22 Python
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
工程班组长岗位职责
2013/12/30 职场文书
战友聚会邀请函
2014/01/18 职场文书
追悼会子女答谢词
2014/01/28 职场文书
幼儿园校车司机的岗位职责
2014/01/30 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
家访教师心得体会
2016/01/23 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python
JS封装cavans多种滤镜组件
2022/02/15 Javascript