且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

定义数据模型| 学习笔记

更新时间:2022-09-06 18:15:07

开发者学堂课程【Python Web 框架 Flask 快速入门定义数据模型】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/603/detail/8796


定义数据模型


目录

一、定义数据模型

二、演示


一、定义数据模型

通过操纵模型和数据库字段发生关联,对于 SQLAlchemy 扩展模型的定义,可以根据下方表格中基本字段类型,选项和关系选项进行操作。

常用的 SQL Alchemy 列选项

选项名:primary-key

说明:如果为 True ,代表表的主键

选项名: unique

说明:如果为 True ,代表不允许出现重复的值

选项名: index

说明:如果为 True ,为这列创建索引,提高查询效率

选项名: default

说明:为这列定义默认值

常用的 SQL Alchemy 关系选项

选项名: backref

说明:在关系的另一模型中添加反向引用

选项名:Primary join

说明:明确指定两个模型之间使用的联结条件

选项名: order-by

说明:指定关系中记录的排序方式。

选项名: seconday

说明:指定多对多记录的排序方式。


二、演示

比如有两张表格,一张表格为角色,包括管理员和普通用户,另外一张表格为用户(角色 ID ),如下表所示

#数据库的模型,需要继承 db.Model

class Role(db.Model):

#定义表名

__tablename___ = 'roles"

#定义字段

# db.Column表示是一个字段

id = db.Column(db.Integer,,primary_key=True)

name = db.Column(db.String(16),unique=True)

class User(db.Model):

tablename _='users' I

id = db.Column(db.Integer, primary_key=True)

name = db.Column(db.String(16), unique=True)

# db.ForeignKey('roles.id')表示是外键,表名,id

role_id = db.Column(db.Integer, db.ForeignKey(' roles.id'))