Flask-SQLAlchemy是针对flask开发而封装的一个包,这里面使得SQLAlchemy操作更方便,基本用法和SQLAlchemy类似。

安装:

pip install flask-sqlalchemy

数据库连接:

  1. 跟sqlalchemy一样,定义好数据库连接字符串DB_URI。
  2. 将这个定义好的数据库连接字符串DB_URI,通过SQLALCHEMY_DATABASE_URI这个键放到app.config中。示例代码:app.config["SQLALCHEMY_DATABASE_URI"] = DB_URI.
  3. 使用flask_sqlalchemy.SQLAlchemy这个类定义一个对象,并将app传入进去。示例代码:db = SQLAlchemy(app)

示例代码:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

HOSTNAME = '' # 主机地址
PORT = '3306' # 端口号
DATABASE = '' # 数据库
USERNAME = '' # 数据库账号
PASSWORD = '' # 数据库密码

# dialect+driver://username:password@host:port/database
DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8mb4".format(username=USERNAME,password=PASSWORD,host=HOSTNAME,port=PORT,db=DATABASE)

app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

创建ORM模型:

  1. 还是跟使用sqlalchemy一样,定义模型。现在不再是需要使用delarative_base来创建一个基类。而是使用db.Model来作为基类。
  2. 在模型类中,ColumnStringInteger以及relationship等,都不需要导入了,直接使用db下面相应的属性名就可以了。
  3. 在定义模型的时候,可以不写__tablename__,那么flask_sqlalchemy会默认使用当前的模型的名字转换成小写来作为表的名字,并且如果这个模型的名字使用了多个单词并且使用了驼峰命名法,那么会在多个单词之间使用下划线来进行连接。虽然flask_sqlalchemy给我们提供了这个特性,但是不推荐使用。

将ORM模型映射到数据库:

  1. 删除数据库:db.drop_all()
  2. 创建数据库:db.create_all()

使用session:

以后session也不需要使用sessionmaker来创建了。直接使用db.session就可以了。操作这个session的时候就跟之前的sqlalchemysession是一样的。

Last modification:May 15, 2020
If you think my article is useful to you, please feel free to appreciate