Peewee 模型


Peewee API 中的 Model 子类的一个对象对应于数据库中已建立连接的表。它允许在 Model 类中定义的方法的帮助下执行数据库表操作。

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

元类属性


元类属性解释如下:

序号 属性和描述
1

Database

模型数据库。

2

db_table

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

3

Indexes

要索引的字段列表。

4

首要的关键

复合键实例。

5

约束

表约束列表。

6

Schema

模型的数据库架构。

7

暂时的

表示临时表。

8

取决于

指示此表依赖于另一个表来创建。

9

没有_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()

The 创建表() 方法是执行等效 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类中的其他方法如下:

序号 型号类别和说明
1

类方法别名()

创建模型类的别名。它允许同一模型在查询中多次引用。

2

类方法 select()

执行 SELECT 查询操作。如果没有明确提供任何字段作为参数,则默认情况下查询将与 SELECT * 等效。

3

类方法更新()

执行 UPDATE 查询功能。

4

类方法插入()

在映射到模型的基础表中插入新行。

5

类方法删除()

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

6

类方法 get()

从匹配给定过滤器的映射表中检索单行。

7

get_id()

实例方法返回一行的主键。

8

save()

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

9

类方法绑定()

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