详解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实现在目录中查找指定文件的方法
Nov 11 Python
利用Python演示数型数据结构的教程
Apr 03 Python
Python探索之修改Python搜索路径
Oct 25 Python
python3第三方爬虫库BeautifulSoup4安装教程
Jun 19 Python
Python3.5装饰器原理及应用实例详解
Apr 30 Python
python获取txt文件词向量过程详解
Jul 05 Python
Python中最好用的命令行参数解析工具(argparse)
Aug 23 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 Python
django-csrf使用和禁用方式
Mar 13 Python
python上selenium的弹框操作实现
Jul 13 Python
python编程项目中线上问题排查与解决
Nov 01 Python
python实现双向链表原理
May 25 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
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
php格式化金额函数分享
2015/02/02 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
php实现转换html格式为文本格式的方法
2016/05/16 PHP
PHP中类的自动加载的方法
2017/03/17 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
JavaScript类库D
2010/10/24 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
2014/06/23 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
trackingjs+websocket+百度人脸识别API实现人脸签到
2018/11/26 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
Python类的用法实例浅析
2015/05/27 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
TensorFlow打印tensor值的实现方法
2018/07/27 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
Python递归实现打印多重列表代码
2020/02/27 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
计算机应用与科学个人的自我评价
2013/11/15 职场文书
高中毕业自我鉴定
2013/12/16 职场文书
毕业生评语大全
2015/01/04 职场文书
2015年大学生工作总结
2015/04/21 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers