切换主题
二、ORM模型
- 对象关系映射(
object relationship mapping
,简称 ORM)是一种可以用 Python 面向对象的方式来操作关系型数据库的技术,具有可以映射到数据库表能力的Python 类我们称之为ORM 模型
- 一个 ORM 模型与数据库中的一个表相对应,ORM 模型中的每个类属性分别对应表的每个字段
- 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 | 在创建表时的注释 |