Peewee 简明教程

Peewee - Model

Peewee API 中 Model 子类的一个对象对应一个表,该表位于已建立其连接的数据库中。它允许执行数据库表操作,通过 Model 类中定义的方法来实现。

一个用户定义的 Model 有一个或更多类属性,它们中的每一个都是 Field 类的对象。Peewee 有多个子类用于保存不同类型的数据。示例有 TextField、DatetimeField 等。它们对应于数据库表中的字段或列。关联的数据库和表以及模型配置的引用在 Meta 类中提及。以下属性用于指定配置 −

Meta class Attributes

下面解释了元类属性:

Sr.No

Attribute & Description

1

Database Database for model.

2

db_table 用于存储数据的表的名称。默认情况下,它是模型类的名称。

3

Indexes 一组列出要编入索引的字段。

4

primary_key A composite key instance.

5

Constraints 表约束的列表。

6

Schema 模型的数据库模式。

7

Temporary Indicate temporary table.

8

depends_on 指出此表取决于另一个表才能创建。

9

without_rowid 指明表不应有 rowid(仅限 SQLite)。

以下代码为 mydatabase.db 中的 User 表定义了 Model 类 -

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() 方法是 Model 类的一个类方法,它执行等效的 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()

Methods in Model class

Model 类中的其他方法如下所示 −

Sr.No

Model Class & Description

1

Classmethod alias() 创建模型类的别名。它允许在查询中多次引用同一个 Model。

2

Classmethod select() 执行 SELECT 查询操作。如果没有明确提供字段作为参数,则该查询默认与 SELECT * 等效。

3

Classmethod update() 执行 UPDATE 查询函数。

4

classmethod insert() 在映射到模型的底表中插入新行。

5

classmethod delete() 执行删除查询,通常与 where 子句的过滤器相关联。

6

classmethod get() 从与给定过滤器匹配的映射表中检索单个行。

7

get_id() 实例方法返回行的主键。

8

save() 将对象的数据另存为新行。如果主键值已存在,它将导致执行 UPDATE 查询。

9

classmethod bind() 将模型绑定到给定的数据库。