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()

将模型绑定到给定的数据库。