美文网首页
flask - config 配置

flask - config 配置

作者: python_菜鸟 | 来源:发表于2020-08-31 14:59 被阅读0次

Flask 项目中,我们会加载很多配置 :
譬如:
设置秘钥:

app.config['SECRET_KEY'] = 'some strange words'

设置数据库:

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////'

同时也会有一些自定义的配置项:

# 视图分页
app.config['POST_PER_PAGE'] = 10
post_per_page = app.config['POST_PER_PAGE']

然而配置的方法有多种:
1 .例如上面的方法可直接在创建app文件中添加配置
2、对于一些密码等写在环境变量的配置如何加载到项目里面呢?

import os

from flask import Flask

app = Flask(__name__)
app.config['MAIL_USERNAME'] = os.getenv('MAIL_USERNAME', '*****.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
# 或者更新字典的方式
app.config.update(
    DEBUG=True,
    SECRET_KEY='some secret words',
    ITEMS_PER_PAGE=10
)

当我们的项目较大时我们要将大量的配置信息写在配置文件里面
创建 config.py

SECRET_KEY = 'some secret words'
DEBUG = True
ITEMS_PER_PAGE = 10

项目导入配置的方法:

import config
from flask import Flask

app = Flask(__name__)
app.config.from_object(config)

或者:

from flask import Flask

app = Flask(__name__)
app.config.from_pyfile('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

class ProductionConfig(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,
    'product': ProductionConfig,
    'default': DevelopmentConfig
}

根据不同的环境导入不同的配置

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

app = Flask(__name__)
env = os.getenv('FLASK_ENV', 'development')  # 从环境配置文件获取当前环境
app.config.from_object(config.get(env, 'default'))  # 获取相应的配置类

更多知识学习查看 flask配置官方文档
文章转载 李辉大神 致敬膜拜!!!

相关文章

  • python Flask的配置文件

    配置文件 flask中的配置文件是一个flask.config.Config对象(继承字典) 默认配置为: 常见设...

  • flask配置文件

    flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为: 配置文件的实现方...

  • flask - config 配置

    Flask 项目中,我们会加载很多配置 :譬如:设置秘钥: 设置数据库: 同时也会有一些自定义的配置项: 然而配置...

  • Flask参数配置

    在Flask中的参数配置保存在Flask对象的config属性中。 config实际上继承于字典,可以像修改字典一...

  • flask框架

    flask应用对象初始化 配置参数的使用方式: 使用配置文件 app.config.from_pyfile('co...

  • Python中Flask框架的变量和函数

    config 可以从模板中直接访问Flask当前的config对象: request 就是flask中代表当前请求...

  • Flask工程配置信息

    Flask将配置信息保存到了app.config属性中,该属性可以按照字典类型进行操作 设置 从配置对象中加载ap...

  • Flask app.config 的配置

    原理如下: 1、通过调用自定义config.py文件中config字典,可以得到一个类,这个类里面定义的都是类变量...

  • 7、flask与flask-restful的结合使用

    搭建一个完整的flask服务: 配置文件: config.py 启动文件: proj_dir/crm/app.py...

  • 无标题文章

    引用 < app = Flask(__name__) app.config.from_object(config)...

网友评论

      本文标题:flask - config 配置

      本文链接:https://www.haomeiwen.com/subject/comusktx.html