数据库配置

config.py
class SystemConfig:

    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://{user}:{password}@{host}/{db_name}?charset=utf8'.format(**{
        'user': 'sample_user',
        'password': 'passwd',
        'host': 'host',
        'db_name': 'sample_db_1'
    })
    
    SQLALCHEMY_BINDS = {"second_sample_db": SECOND_SAMPLE_DATABASE}

    SECOND_SAMPLE_DATABASE = 'mysql+pymysql://{user}:{password}@{host}/{db_name}?charset=utf8'.format(**{
        'user': 'sample_user',
        'password': 'passwd',
        'host': 'host',
        'db_name': 'sample_db_2'
    })

Config = SystemConfig

启动时的文件设置

database.py
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

def init_db(app):
  db.init_app(app)
__init__.py
import config

from flask import Flask
from api.database import db


def create_app():

    app = Flask(__name__)

    # config.Load py
    app.config.from_object('config.Config')
    db.init_app(app)

    return app

app = create_app()
app.py
from api import app

if __name__ == '__main__':
  app.run()

模型

model.py

from database import db

class SecondSample(db.Model):
    __bind_key__ = 'second_sample_db' #config.What was set with py
    __tablename__ = 'second_sample_table'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String)
    date = db.Column(db.DATETIME)

    def __init__(self, id, name, date):
        self.id = id
        self.name = name
        self.date = date