Skip to content

二、ORM模型

  1. 对象关系映射(object relationship mapping,简称 ORM)是一种可以用 Python 面向对象的方式来操作关系型数据库的技术,具有可以映射到数据库表能力的Python 类我们称之为 ORM 模型
  2. 一个 ORM 模型与数据库中的一个表相对应,ORM 模型中的每个类属性分别对应表的每个字段
  3. ORM 模型的每个实例对象对应表中的每条记录

一、通过ORM模型创建表

python
class User(db.Model):
    __tablename__ = "user"
    id = db.Column(db.Integer, autoincrement=True, primary_key=True)
    username = db.Column(db.String(100), nullable=False)
    password = db.Column(db.String(100), nullable=False)


with app.app_context():
    db.create_all()

1、Flask-SQLAlchemy字段类型

类型描述
db.Integer整型。范围与数据库一致
db.SmallInteger小整型。范围与数据库一致
db.BigInteger长整型。范围与数据库一致
db.Decimal定点类型。可以指定总长度和小数点后位数
db.Boolean布尔类型
db.Date日期类型。存储 Python 中的 datetime.date 对象
db.DateTime日期时间类型。存储 Python 中的 datetime.datetime 对象
db.Time时间类型。存储Python中的datetime.time 对象
db.Interval时间间隔。存储Python 中的 datetime.timedelay 对象
db.String字符串类型。使用时需要指定长度,不能超过 255个字符
db.Text文本类型。常用于字符串长度不可控的情况
db.Enum枚举类型
db PickleType存储经过 Pickle 后的对象
db.LargeBinary存储二进制数据

2、db.Column常用参数

参数描述
name字段在数据库表中的名称。如果没有设置,则使用此属性名作为字段名称
type字段类型
autoincrement自动增长
default默认值
index如果设置为 True,则将此字段设置为索引
nullable是否为空
onupdate在修改对象时,会自动使用这个属性指定的值
primary_key主键
unigue如果设置为True,则此字段的值必须唯一
conment在创建表时的注释