flask配置管理
配置管理
复杂的项目需要配置各种配置环境,如果设置项缺少可以直接硬编码进来,比如下面的方式:
app.config['DEBUG']=True
app.config['SECRET_KEY'] = 'hard to guess string'
app.config 是 app.config.Config的实例,Config类继承了python内置的dict,所以我们可以使用dict的update方法
app.config.update(
DEBUG=True,
SECRET_KEY = 'hard to guess string'
)
app.config 内置的配置变量可以参考Configuration Handling 如果设置的选项很多,有想要集中管理这些设置项,我们可以把这些配置项选择放置在一个文件中,app.config 支持多种更新配置的方式。假设我们将我们的配置项防止的settings.py这个文件中,内容如下:
DEBUG=True,
SECRET_KEY = 'hard to guess string'
我们可以选择一下三种方式加载文件
1. 通过配置文件加
app.config.from_object('settings') # 通过字符串模块名字导入配置文件
import settings
app.config.from_object(settings) #通过导入文件后直接传入模块对象
2.通过文件名字加载,直接传入文件名字,单是不限于只使用.py后缀的文件
# 默认当配置文件不存在时候,会抛出异常,使用silent=True
# 的时候只是返回False,但是不会抛出异常
app.config.from_pyfile('settings.py',silent=True)
3.通过环境变量加载,这种方式依然支持silent参数,获得路径后其实还是使用了from_pyfile的方式加载
#
# 在python环境变量中设置
# >export USERAPPLICATION_SETTINGS = 'settings.py'
app.config.from_envvar('USERAPPLICATION_SETTINGS')
调试模式
我们每次使用 app.run 方式开启本地应用,但是当我们在开发中修改了代码,都要手动的重启应用,这样的方式既不方便也不优雅。其实flask已经帮我们解决了开发模式代码修改后自动重启应用的功能,并在发生错误的时候,提供一个能获得错误上下文及可执行代码的调试页面。
两种开启调试模式的方法
1 直接在应用对象上设置
app.debug = True
app.run()
2. 作为run的参数传入
app.run(debug=True
注意事项:
开启调试模式会成为一个巨大的安全隐患,因此决不能用于生产环境中。
flask配置管理的更多相关文章
- 从源码看Flask框架配置管理
1 引言 Flask作为Python语言web开发的三大顶梁柱框架之一,对于配置的管理当然必不可少.一个应用从开发到测试到最后的产品发布,往往都需要多种不同的配置,例如是否开启调试模式.使用哪个数据库 ...
- Flask源码学习—config配置管理
自己用Flask做了一个博客(www.hbnnlove.sinaapp.com),之前苦于没有对源码解析的文档,只能自己硬着头皮看.现在我把我自己学习Flask源码的收获写出来,也希望能给后续要学习F ...
- 【Flask】 项目结构说明
项目结构 Flask的一大优势就是其极其轻量化.但是也需要注意到,如果我们要用Flask做一个大项目的话,把所有代码写在一个文件里肯定是不合适的.非常难以维护.但是和Django这种框架又不一样,Fl ...
- Python flask中的配置
当你开始学习Flask时,配置看上去是小菜一碟.你仅仅需要在config.py定义几个变量,然后万事大吉. 然而当你不得不管理一个生产上的应用的配置时,这一切将变得棘手万分. 你不得不设法保护API密 ...
- Flask的配置与路由
配置管理 flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为: { 'DEBUG': get_de ...
- 欢迎来到 Flask 的世界
欢迎来到 Flask 的世界 欢迎阅读 Flask 的文档.本文档分成几个部分,我推荐您先读 < 安装 >,然后读< 快速上手 >.< 教程 > 比快速上手文档更详 ...
- flask之配置文件的加载和动态url的使用
七行代码实现一个flask app from flask import Flask app = Flask(__name__) @app.route('/') def helloworld(): re ...
- flask+sqlite3+echarts2+ajax数据可视化
前提: 准备Python + Flask+Sqlite3的平台环境(windows系统) 前面一节介绍flask怎么安装了,剩下sqlite3下载后解压,然后环境变量添加解压路径就行了 附加下载地址: ...
- flask+sqlite3+echarts2+ajax数据可视化报错:UnicodeDecodeError: 'utf8' codec can't decode byte解决方法
flask+sqlite3+echarts2+ajax数据可视化报错: UnicodeDecodeError: 'utf8' codec can't decode byte 解决方法: 将 py文件和 ...
随机推荐
- JQuery插件开发标准写法
;//step01 定义JQuery的作用域 (function ($) { //step03-a 插件的默认值属性 var defaults = { prevId: 'prevBtn', prevT ...
- 服务器固件测试--PCI设备的介绍(集成网卡和外插网卡)
今天2017年9月26号,快三个月的时间,是该梳理一下,我来到这个岗位学到的东西. 网卡是什么 网卡分为俩大类 板载的集成网卡和外插的网卡.外插的网卡又分为很多种. 板载的集成网卡 外插的网卡分为 I ...
- flask中的session,render_template()第二和参数是字典
1. 设置一个secret_key 2.验证登入后加上session,这是最简单,不保险 . 3.注意render_template传的参数是字典
- Idea中右边的maven projects窗口找不到了如何调出来
关于Idea中右边的maven projects窗口找不到了如何调出来? 具体的idea版本我不太清楚,我用的是2016版,其他版本应该也是一样的. 首先idea自带了maven控件,不像Eclip ...
- JS中数组的迭代方法和归并方法
昨天总结的JavaScript中的数组Array方法 数组的迭代方法 ES5中为数组定义了5个迭代方法.每个方法都要接收两个参数:要在每一项上面运行的函数和(可选的)运行该函数的作用域对象---影响t ...
- 浅谈Async/Await
概要 在很长一段时间里面,FE们不得不依靠回调来处理异步代码.使用回调的结果是,代码变得很纠结,不便于理解与维护,值得庆幸的是Promise带来了.then(),让代码变得井然有序,便于管理.于是我们 ...
- iOS 让CoreData更简单些
原文:http://www.cocoachina.com/ios/20170421/19096.html 前言 本文并不是CoreData从入门到精通之类的教程, 并不会涉及到过多的原理概念描述, 而 ...
- 【NOIP模拟】cut
Description F大爷热爱切树.今天他找到一棵黑白树,不到两秒钟,F大爷就把这棵树切掉了.已知原先树上共n个点,每个点都是黑点或者白点,F大爷切去若干条边后,分成的若干个连通子树中每块恰有一个 ...
- CPU31X-2DP通过DP网络连接远程IO站
一.远程IO站介绍 二.该DP网络系统结构 三.组态DP主站 1.组态机架硬件配置 2.设置profibus属性,主站地址为2,如下图 3.完成主站组态 四.组态远程IO从站ET200M 1.接口模块 ...
- AdaBoost对实际数据分类的Julia实现
写在前面 AdaBoost是机器学习领域一个很重要很流行的算法,而Julia是一门新兴的发展迅速的科学计算语言.本文将从一个实际例子出发,展示如何用Julia语言实现AdaBoost算法. 什么是Ad ...