Flaskは複数のデータベースをバインドする

5560 ワード

次に、Flaskで複数のデータベースをバインドする方法について説明します.
シーンの操作
システムを開発するには、複数のデータベースが必要ですが、このデータベースはすでにあります.新しいテーブルを構築するには、データを導くのが面倒です.このとき、複数のデータベースをバインドする必要があります.
方法
データベースのパスワードなどの情報は機密情報なので、脱敏処理をしたほうがいいです.
# 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にアップロードしました.