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

注意事项:

    开启调试模式会成为一个巨大的安全隐患,因此决不能用于生产环境中。

 

上一篇:ALM11 OTA API接口的问题


下一篇:SCCM符合性设置