详解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 fabric实现远程操作和部署示例
Mar 25 Python
Python常用列表数据结构小结
Aug 06 Python
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
Nov 05 Python
部署Python的框架下的web app的详细教程
Apr 30 Python
anaconda中更改python版本的方法步骤
Jul 14 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
Nov 29 Python
python如何获取apk的packagename和activity
Jan 10 Python
Python对Tornado请求与响应的数据处理
Feb 12 Python
详解python安装matplotlib库三种失败情况
Jul 28 Python
pycharm 添加解释器的方法步骤
Aug 31 Python
Python SQLAlchemy库的使用方法
Oct 13 Python
pytorch 中autograd.grad()函数的用法说明
May 12 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
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
Zend Framework教程之Bootstrap类用法概述
2016/03/14 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
你必须知道的Javascript知识点之"字面量和对应类型"说明介绍
2013/04/23 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
JavaScript中的函数模式详解
2015/02/11 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
JavaScript之Canvas_动力节点Java学院整理
2017/07/04 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
vue-router+nginx 非根路径配置方法
2018/06/30 Javascript
Vue表单及表单绑定方法
2018/09/04 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
Python 多核并行计算的示例代码
2017/11/07 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
python tqdm库的使用
2020/11/30 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
香港化妆品经销商:我的公主
2016/08/05 全球购物
请介绍一下WSDL的文档结构
2013/03/17 面试题
写给保洁员表扬信
2014/01/08 职场文书
公证委托书
2014/08/01 职场文书
捐助倡议书
2015/01/19 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
企业财务管理制度范本
2015/08/04 职场文书
教你使用pyinstaller打包Python教程
2021/05/27 Python
修改并编译golang源码的操作步骤
2021/07/25 Golang
Python字符串的转义字符
2022/04/07 Python