我有两个数据库,分别是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实例。
答案 0 :(得分:0)
您很可能希望在一个数据库中创建多个表,而不是创建多个数据库。
否则,这些将有助于: https://flask-appbuilder.readthedocs.io/en/latest/multipledbs.html Configuring Flask-SQLAlchemy to use multiple databases with Flask-Restless