在不发布整个代码的情况下,我使用Flask-SQLalchemy使用动态数据库的关键概念是:
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
具有全局数据库注册表
DATABASE_REGISTRY = {}
SESSION_MAKER = db.sessionmaker()
创建数据库引擎并添加到注册表(我在另一个帮助器函数中具有此功能)
engine = db.create_engine(db_uri)
DATABASE_REGISTRY['username'] = { 'engine': engine}
然后动态获取用户数据库,并具有帮助功能
def get_db_session(username):
db_session = SESSION_MAKER(bind=DATABASE_REGISTRY.get(username)['engine'])
return db_session
然后您可以使用:
db_session = get_db_session('user_bob')
bob_query = db_session.query(ATable).all()
别忘了关闭会话
db_session.close()
本文链接:https://www.f2er.com/3150622.html