1、基本配置:
Flask对象的config属性保存着载入的配置值。
app=Flask(__name__)
app.config['ABC']='ABC'
也可以使用app.config.update(
DEBUG=True,
SECRET_KEY='ABCDF'
)
一次性更新多个键。
2、从文件配置
app.config.from_pyfile('yourconfig.cfg')
其中yourconfig.cfg默认是在项目的路径下:如/home/wang/myproject/flaskr/abc.cfg 其中项目路径为/home/wang/myproject/flaskr/ 可以使用相对路径(相对于项目路径),abc.cfg;可以更改该路径,如/home/wang/myproject/flaskr/abc/abc.cfg。其实,在abc.cfg文件中的所有大写字母变量都会作为app.config中的key与value。
也可以使用app.config.from_object(obj)函数:
当obj是字符串时,与app.config.from_pyfile('yourconfig.cfg')一样。但是,只能使用默认路径,且obj只能是模块,如abc.py,不能是abc.cfg,并且模块中的变量必须全为大写字母才会被采用。
当obj是对像时,相当于使用类配置,如下文所讲
3、从类及继承配置
在abc.py中有如下代码:
class Config(object):
DEBUG = False
TESTING = False
DATABASE_URI = 'sqlite://:memory:'
class ProductionConfig(Config):
DATABASE_URI = 'mysql://user@localhost/foo'
class DevelopmentConfig(Config):
DEBUG = True
class TestingConfig(Config):
TESTING = True
使用app.config.from_object(abc.TestingConfig)函数可以导入相应的配置项。
4.使用环境变量进行配置:
可以使用app.config.from_envvar(VAR)
首先:在程序运行之前,导入环境变量VAR,指定配置文件:export VAR=/home/wang/myproject/flaskr/abc/abc.cfg
然后采用app.config.from_envvar(VAR)导入配置文件
5、使用实例文件配置:
使用实例文件可以指定配置文件的路径:
你可以在创建 Flask 应用时显式地提供实例文件夹的路径,也可以让 Flask 自动找到它。对于显式的配置,使用 instance_path 参数:
app = Flask(__name__, instance_path='/path/to/instance/folder',instance_relative_config=True
)
此时实例文件路径为:/path/to/instance/folder 该路径必须为绝对路径,配置文件中的相对路径的行为可以在“相对应用的根目录”(默认)和 “相对实例文件夹”中切换,后者通过应用构造函数的 instance_relative_config 开关实现。
如果我们设置instance_path='/home/wang/myproject/flaskr/abc',并设置instance_relative_config=True
此时,我们在/home/wang/myproject/flaskr/abc中写一个配置文件abc.cfg。然后使用app.config.from_pyfile('abc.cfg'),程序就可以在/home/wang/myproject/flaskr/abc中找到abc.cfg了
可参考文献:http://dormousehole.readthedocs.org/en/latest/config.html