详解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脚本实现DNSPod DNS动态解析域名
Feb 14 Python
python模块导入的细节详解
Dec 10 Python
详解Python下载图片并保存本地的两种方式
May 15 Python
python实战串口助手_解决8串口多个发送的问题
Jun 12 Python
实例详解Python模块decimal
Jun 26 Python
快速解决vue.js 模板和jinja 模板冲突的问题
Jul 26 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
python 解决pycharm运行py文件只有unittest选项的问题
Sep 01 Python
PyCharm常用配置和常用插件(小结)
Feb 06 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
Feb 24 Python
Django给表单添加honeypot验证增加安全性
May 06 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在引号前面添加反斜杠(PHP去除反斜杠)
2013/09/28 PHP
PHP中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
2016/08/12 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
javascript字符串拼接的效率问题
2010/12/25 Javascript
怎么清空javascript数组
2013/05/11 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
微信小程序switch组件使用详解
2018/01/31 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
JSON的parse()方法介绍
2019/01/31 Javascript
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
python之随机数函数的实现示例
2020/12/30 Python
Python try except finally资源回收的实现
2021/01/25 Python
CSS3的 fit-content实现水平居中
2017/09/07 HTML / CSS
Grid 宫格常用布局的实现
2020/01/10 HTML / CSS
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
采购主管岗位职责
2014/02/01 职场文书
药品营销策划方案
2014/06/15 职场文书
网吧七夕活动策划方案
2014/08/31 职场文书
2014年稽查工作总结
2014/12/20 职场文书
技术员个人工作总结
2015/03/03 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
mybatis 获取更新记录的id
2022/05/20 Java/Android