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() 将模型绑定到给定的数据库。 |