首页 > 其他 > 详细

flask config 环境变量配置

时间:2020-01-13 17:17:32      阅读:219      评论:0      收藏:0      [点我收藏+]

https://zhuanlan.zhihu.com/p/24055329

从环境变量中读取配置

对于不适合写在程序里的配置,比如密码等,需要把配置写入系统环境变量,然后使用os模块的getenv()方法获取,第二个参数作为默认值

set MAIL_USERNAME=me@greyli.com  # windows
export MAIL_USERNAME=me@greyli.com  # *unix
import os
from flask import Flask

app = Flask(__name__)
app.config[MAIL_USERNAME] = os.getenv(MAIL_USERNAME, me@greyli.com)

 

直接写入主脚本

当你的程序很小的时候,可以直接把配置写在主脚本里

from flask import Flask

app = Flask(__name__)
app.config[SECRET_KEY] = some secret words
app.config[DEBUG] = True
app.config[ITEMS_PER_PAGE] = 10

使用字典的update方法可以简化代码

from flask import Flask

app = Flask(__name__)
app.config.update(
    DEBUG=True,
    SECRET_KEY=some secret words,
    ITEMS_PER_PAGE=10
)

 

单独的配置文件

程序逐渐变大时,配置也逐渐增多,写在主脚本里太占地方,不够优雅。我们可以创建一个单独的配置文件。和上面同样的配置,现在可以改写为

config.py

import os
basedir = os.path.abspath(os.path.dirname(__file__))


class BaseConfig:  # 基本配置类
    SECRET_KEY = os.getenv(SECRET_KEY, some secret words)
    ITEMS_PER_PAGE = 10


class DevelopmentConfig(BaseConfig):
    DEBUG = True
    SQLALCHEMY_DATABASE_URI = os.getenv(DEV_DATABASE_URL, sqlite:/// + os.path.join(basedir, data-dev.sqlite)


class TestingConfig(BaseConfig):
    TESTING = True
    SQLALCHEMY_DATABASE_URI = os.getenv(TEST_DATABASE_URL, sqlite:/// + os.path.join(basedir, data-test.sqlite)
    WTF_CSRF_ENABLED = False


config = {
    development: DevelopmentConfig,
    testing: TestingConfig,
    default: DevelopmentConfig
}

 

通过from_object()方法导入配置

from config import config  # 导入存储配置的字典

...
app = Flask(__name__)
app.config.from_object(config[development])  # 获取相应的配置类
...


# 通过此方法得到配置文件的值
current_app.config[‘SQLALCHEMY_DATABASE_URI‘]

flask config 环境变量配置

原文:https://www.cnblogs.com/mlllily/p/12188142.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!