Можем ли мы создать несколько MySQL экземпляров в одном flask приложении? - PullRequest
0 голосов
/ 26 марта 2020

У меня есть две базы данных: xyz и ab c. Дело в том, что я хочу иметь два экземпляра MySQL, использующих одно приложение Flask. Вот как я инициализирую один 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)

У меня есть другая база данных, позволяющая сказать 'ab c', когда я пытаюсь перезаписать '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 голосов
/ 26 марта 2020

Скорее всего, вы хотите создать несколько таблиц в одной базе данных, а не создавать несколько баз данных.

Иначе, это поможет: https://flask-appbuilder.readthedocs.io/en/latest/multipledbs.html Настройка Flask -SQLAlchemy для использования нескольких баз данных с Flask -Restless

...