Flask:不同子域的不同数据库后端?

Flask:不同子域的不同数据库后端?,flask,flask-sqlalchemy,Flask,Flask Sqlalchemy,我的应用程序使用子域满足多个客户的需求,并使用公共数据库进行基础架构管理,并为每个客户使用特定于客户的数据库。我正在使用pythonFlask框架和Flask sqlalchemy插件来开发它 对于单个客户场景,我可以在配置中使用两个sqlalchemy绑定(一个用于客户数据库,一个用于内务数据库)来处理此问题。 但是,当我添加多个客户时,我希望他们使用特定于客户的配置来为客户绑定获得正确的数据库。对于我来说,将客户数据保存在他们自己的数据库中以满足法规遵从性要求非常重要 实现该功能的一种方法是

我的应用程序使用子域满足多个客户的需求,并使用公共数据库进行基础架构管理,并为每个客户使用特定于客户的数据库。我正在使用python
Flask
框架和
Flask sqlalchemy
插件来开发它

对于单个客户场景,我可以在配置中使用两个
sqlalchemy
绑定(一个用于客户数据库,一个用于内务数据库)来处理此问题。 但是,当我添加多个客户时,我希望他们使用特定于客户的配置来为客户绑定获得正确的数据库。对于我来说,将客户数据保存在他们自己的数据库中以满足法规遵从性要求非常重要

实现该功能的一种方法是部署尽可能多的web应用程序,但这是不可扩展的


我探索了如何使用
蓝图
,但蓝图用于为每个蓝图提供不同的视图。对我来说,所有客户的观点都是一样的。我只想让他们根据子域访问不同的数据库。此外,随着客户名单的增长,继续创建蓝图可能不是一个好主意。如何使用相同的视图和模型定义,通过单个flask应用程序实现这一点

您可以在decorator
@app.before\u request
包装的函数中放置一些代码,以检查用户是否经过身份验证,然后根据Flask的
请求计算出正确的数据库。url
并将其存储在Flask的全局
g
对象中