Peewee - Model 模型
Peewee API中 Model 子类的对象对应数据库中已建立连接的表。 它允许在 Model 模型类中定义的方法的帮助下执行数据库表操作。
一个用户定义的模型有一个或多个类属性,每一个都是Field类的对象。 Peewee 有许多子类用于保存不同类型的数据。 例子有TextField、DatetimeField等,它们对应数据库表中的字段或列。 关联数据库和表的引用以及模型配置在 Meta 类中提到。 以下属性用于指定配置 −
Meta 元类属性
Meta 元类属性解释如下 −
Sr.No | 属性 & 描述 |
---|---|
1 | Database 模型数据库。 |
2 | db_table 用于存储数据的表的名称。 默认情况下,它是模型类的名称。 |
3 | Indexes 要索引的字段列表。 |
4 | primary_key 复合键实例。 |
5 | Constraints 表约束列表。 |
6 | Schema 模型的数据库架构。 |
7 | Temporary 表示临时表。 |
8 | depends_on 表示此表依赖于另一个创建。 |
9 | without_rowid 表明该表不应有 rowid(仅限 SQLite)。 |
以下代码为 mydatabase.db 中的 User 表定义了模型类 −
from peewee import * db = SqliteDatabase('mydatabase.db') class User (Model): name=TextField() age=IntegerField() class Meta: database=db db_table='User' User.create_table()
create_table() 方法是模型类的类方法,执行等效的 CREATE TABLE 查询。 另一个实例方法 save() 添加对应于对象的行。
from peewee import * db = SqliteDatabase('mydatabase.db') class User (Model): name=TextField() age=IntegerField() class Meta: database=db db_table='User' User.create_table() rec1=User(name="Rajesh", age=21) rec1.save()
Model 模型类中的方法
Model 模型类中的其他方法如下 −
Sr.No | Model 模型类 & 描述 | 1 | Classmethod alias() 为模型类创建一个别名。 它允许同一模型在查询中多次引用。 |
---|---|
2 | Classmethod select() 执行 SELECT 查询操作。 如果没有显式提供字段作为参数,查询将默认与 SELECT * 等价。 |
3 | Classmethod update() 执行更新查询功能。 |
4 | classmethod insert() 在映射到模型的基础表中插入一个新行。 |
5 | classmethod delete() 执行删除查询,通常与 where 子句的过滤器相关联。 |
6 | classmethod get() 从匹配给定过滤器的映射表中检索单行。 |
7 | get_id() 实例方法返回一行的主键。 |
8 | save() 将对象的数据保存为一个新行。 如果主键值已经存在,它将导致执行 UPDATE 更新查询。 |
9 | classmethod bind() 将模型绑定到给定的数据库。 |