Categories: Flask 中文教程

Flask 开发/生产

大多数应用不止需要一份配置。生产服务器和开发期间使用的服务器应该各有一份单独
的配置。处理这个的最简单方法是,使用一份默认的总会被载入的配置,和一部分版本
控制,以及独立的配置来像上面提到的例子中必要的那样覆盖值:

app = Flask(__name__)
app.config.from_object('yourapplication.default_settings')
app.config.from_envvar('YOURAPPLICATION_SETTINGS')

然后你只需要添加一个独立的 config.py 文件然后 export
YOURAPPLICATION_SETTINGS=/path/to/config.py 。不过,也有其它可选的方式。
例如你可以使用导入或继承。

在 Django 世界中流行的是在文件顶部,显式地使用
from yourapplication.default_settings import * 导入配置文件,并手动覆
盖更改。你也可以检查一个类似 YOURAPPLICATION_MODE 的环境变量来设置
productiondevelopment 等等,并导入基于此的不同的硬编码文件。

一个有意思的模式是在配置中使用类和继承:

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

启用这样的配置你需要调用 from_object()

app.config.from_object('configmodule.ProductionConfig')

管理配置文件有许多方式,这取决于你。这里仍然给出一个好建议的列表:

  • 在版本控制中保留一个默认的配置。向配置中迁移这份默认配置,或者在覆盖
    配置值前,在你自己的配置文件中导入它。
  • 使用环境变量来在配置间切换。这样可以在 Python 解释器之外完成,使开发
    和部署更容易,因为你可以在不触及代码的情况下快速简便地切换配置。如果你
    经常在不同的项目中作业,你甚至可以创建激活一个 virtualenv 并导出开发
    配置的脚本。
  • 使用 fabric 之类的工具在生产环境中独立地向生产服务器推送代码和配置。
    参阅 使用 Fabric 部署 模式来获得更详细的信息。
冒牌SEO

前端开发者,欢迎大家一起沟通和交流。

Share
Published by
冒牌SEO

Recent Posts

vue:页面注入js修改input值

一般会直接这样写: let z…

6 小时 ago

聊聊vue3中的defineProps

在Vue 3中,defineP…

1 周 ago

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

2 周 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

3 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

4 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

1 月 ago