【发布时间】:2016-12-22 19:50:21
【问题描述】:
我正在使用 Flask 和 Flask-SQLAlchemy 编写一个项目,在该项目中,我需要访问未知数据库,并在这些数据库中使用 db.engine.execute(<SQL>) 执行查询。
但是如何指定哪个数据库将接收查询?
例子:
app = Flask(__name__, static_url_path="")
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:******@127.0.0.1:3306/api'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
app.config['SQLALCHEMY_BINDS'] = {
'db1': 'mysqldb://localhost/users',
'db2': 'sqlite:////path/to/appmeta.db'
}
api = Api(app)
auth = HTTPBasicAuth()
db = SQLAlchemy()
db.init_app(app)
@app.before_first_request
def create_database():
db.drop_all()
db.create_all()
@app.route('/test')
def test():
result = db.engine.execute("show tables;")
names = []
for row in result:
names.append(row[0])
return str(names)
如何在 db1 中运行 show tables;?而在 db2 中呢?
【问题讨论】:
标签: python database flask flask-sqlalchemy