我是Flask的新手,我在config.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
根据documentation,我们可以一次传递一个配置并运行应用程序,以便应用程序仅针对传递的配置设置运行。
我正在寻找基于url模式的配置,
所以说如果url是:
http://127.0.0.1:8080/api/app/hello应使用
app.config.from_object(ProductionConfig)
http://127.0.0.1:8080/api/app_dev/hello应使用
app.config.from_object(DevelopmentConfig)
http://127.0.0.1:8080/api/app_test/hello应使用
app.config.from_object(TestingConfig)
在运行app时是否有可能我想根据url模式更改配置,以便我不必在时间运行多个app实例。 请指导我如何捕获中间件中的url模式以更改配置文件。
答案 0 :(得分:1)
听起来你可能正在寻找的是application dispatching,除了加载的配置文件外,每个应用程序都是相同的。
here是针对非常类似问题的解决方案,除了它使用子域调度而不是您请求的URL调度。
基本概念应该适用,并将其与第一个链接中的示例结合使用,可以为您开发适合您需求的代码提供良好的开端。
答案 1 :(得分:0)
您可以在路径端点
中执行此操作app.config['DEBUG'] = True
但它会影响整个app对象。所以,当你GET / api / app_dev / hello然后/ api / app / whatever;你还在使用app_dev配置。
答案 2 :(得分:0)
在配置文件中,您可以设置API _路径。在蓝图中,您需要为所需的API设置此参数