详解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 itchat实现微信自动回复的示例代码
Aug 14 Python
socket + select 完成伪并发操作的实例
Aug 15 Python
Python机器学习算法之k均值聚类(k-means)
Feb 23 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
python对XML文件的操作实现代码
Mar 27 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
解决Jupyter无法导入已安装的 module问题
Apr 17 Python
jupyter notebook更换皮肤主题的实现
Jan 07 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
Feb 22 Python
总结Python常用的魔法方法
May 25 Python
如何在Python中妥善使用进度条详解
Apr 05 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 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
PHP中使用file_get_contents post数据代码例子
2015/02/13 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
ASP中Sub和Function的区别说明
2020/08/30 Javascript
js 弹出菜单/窗口效果
2011/10/30 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
[20:57]Ti4主赛事第三天开幕式
2014/07/21 DOTA
python中while循环语句用法简单实例
2015/05/07 Python
学习python 之编写简单乘法运算题
2016/02/27 Python
Python paramiko模块的使用示例
2018/04/11 Python
Python 互换字典的键值对实例
2019/02/12 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
2015年党建工作总结
2015/03/30 职场文书
中秋晚会致辞
2015/07/31 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python