Flaskは複数のデータベースをバインドする
次に、Flaskで複数のデータベースをバインドする方法について説明します.
シーンの操作
システムを開発するには、複数のデータベースが必要ですが、このデータベースはすでにあります.新しいテーブルを構築するには、データを導くのが面倒です.このとき、複数のデータベースをバインドする必要があります.
方法
データベースのパスワードなどの情報は機密情報なので、脱敏処理をしたほうがいいです.
次に、ビュー関数の使用方法は単一のデータベースと同じです.
これまでプロジェクトをしていたときはflaskのMVCモードがどう書かれているのか分からなかったのですが、最終的には自分の模索を経て方法を見つけ、フレームワークのテンプレートをgithubにアップロードしました.
シーンの操作
システムを開発するには、複数のデータベースが必要ですが、このデータベースはすでにあります.新しいテーブルを構築するには、データを導くのが面倒です.このとき、複数のデータベースをバインドする必要があります.
方法
データベースのパスワードなどの情報は機密情報なので、脱敏処理をしたほうがいいです.
# config.py
SQLALCHEMY_DATABASE_URI = 'mysql://root:123456@localhost:3306/teacher' # ( )
#
SQLALCHEMY_BINDS = {
'students': 'mysql://root:123456@localhost:3306/students',
}
# main.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from config import SQLALCHEMY_DATABASE_URI, SQLALCHEMY_BINDS
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = DefaultConfig.SQLALCHEMY_DATABASE_URI
app.config['SQLALCHEMY_BINDS'] = DefaultConfig.SQLALCHEMY_BINDS
db = SQLAlchemy(app)
class Teacher(db.Model):
# , __bind_key__
__tablename__ = 'tablename1' #
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(16))
cardNumber = db.Column(db.String(30))
class Students(db.Model):
__bind_key__ = 'students' # __bind_key__
__tablename__ = 'tablename2' #
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(16))
cardNumber = db.Column(db.String(30))
次に、ビュー関数の使用方法は単一のデータベースと同じです.
これまでプロジェクトをしていたときはflaskのMVCモードがどう書かれているのか分からなかったのですが、最終的には自分の模索を経て方法を見つけ、フレームワークのテンプレートをgithubにアップロードしました.