我们可以在一个Flask应用程序中创建多个MySQL实例吗?

时间:2020-03-26 09:44:10

标签: python mysql flask config

我有两个数据库,分别是xyz和abc。问题是我想使用一个Flask应用程序拥有两个MySQL实例。 这就是我初始化一个MySQL实例的方式:

app = Flask(__name__)
app.config['MYSQL_HOST']='localhost'
app.config['MYSQL_USER']='root'
app.config['MYSQL_PASSWORD']='abcd'
app.config['MYSQL_DB'] = 'xyz'
mysql_xyz = MySQL(app)

我还有另一个数据库,可以说“ abc” 当我尝试通过以下方式覆盖“ MYSQL_DB”时:

app.config['MYSQL_DB'] = 'abc'
mysql_abc = MySQL(app)

我收到以下错误:

调试中间件在流响应中捕获异常 已发送响应头的位置。 MySQLdb._exceptions.OperationalError:(2006,'')

但是,另一种选择是在同一脚本文件app.py下完全创建一个不同的应用程序

app1 = Flask(__name__)
app1.config['MYSQL_HOST']='localhost'
app1.config['MYSQL_USER']='root'
app1.config['MYSQL_PASSWORD']='abcd'
app1.config['MYSQL_DB'] = 'abc'
mysql_abc = MySQL(app1)

,这很好。 任何人都可以让我知道如何覆盖“ MYSQL_DB”配置的值并仅使用一个应用程序变量来创建另一个mysql实例。

1 个答案:

答案 0 :(得分:0)

您很可能希望在一个数据库中创建多个表,而不是创建多个数据库。

否则,这些将有助于: https://flask-appbuilder.readthedocs.io/en/latest/multipledbs.html Configuring Flask-SQLAlchemy to use multiple databases with Flask-Restless

相关问题