0.知识背景
- 如下主要说明的是,连接某一个地址的数据库里面的不同库的方式
- Flask-SQLAlchemy在设置SQLALCHEMY_DATABASE_URI的参数的时候,设置的数据库是默认的数据库,但是偶尔需要连接其他数据库的时候,无法访问到里面的表格,如何操作呢?
1.数据库模型类里面添加参数:
class Course(db.Model):
__tablename__ = "course"
courseID = db.Column(db.Integer, primary_key=True)
courseName = db.Column(db.String(64), unique=True)
class Columns(db.Model):
__bind_key__ = 'information_schema'
__tablename__ = "COLUMNS"
TABLE_CATALOG = db.column(db.Text)
TABLE_SCHEMA = db.column(db.Text)
TABLE_NAME = db.column(db.Text)
COLUMN_NAME = db.column(db.Text)
ORDINAL_POSITION = db.column(db.INT)
2.初始化app的时候,需要绑定数据库的信息
from flask import Flask
from configure import *
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__, template_folder='../templates', static_folder='../static')
DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8mb4".format(username=USERNAME,
password=PASSWORD,
host=HOSTNAME, port=PORT,
db=DATABASE)
DB_URI_binds = "mysql+pymysql://{username}:{password}@{host}:{port}/".format(username=USERNAME,
password=PASSWORD,
host=HOSTNAME, port=PORT)
SQLAlchemy_binds_local = {
"test": DB_URI_binds + "test",
"information_schema": DB_URI_binds + "information_schema",
"world": DB_URI_binds + "world",
}
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
app.config['SQLALCHEMY_BINDS'] = SQLAlchemy_binds_local
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
db.create_all()
db.create_all(bind='information_schema')
db.create_all(bind='world')