flask中的配置处理

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


你可能感兴趣的:(flask中的配置处理)