Peewee – 模型
在Peewee API中,Model子类的一个对象对应于数据库中的一个表,并与之建立了连接。它可以在模型类中定义的方法的帮助下执行数据库表操作。
一个用户定义的模型有一个或多个类属性,每个属性都是一个字段类的对象。Peewee有许多子类用于保存不同类型的数据。例如TextField, DatetimeField等。它们对应于数据库表中的字段或列。Meta类中提到了相关数据库和表以及模型配置的参考。以下属性用于指定配置
元类属性
元类属性解释如下
序号 | 属性和描述 |
---|---|
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() 方法是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()
模型类中的方法
模型类中的其他方法如下
序号 | 模型类和描述 |
---|---|
1 | Classmethod alias() 为模型类创建一个别名。它允许同一个模型在一个查询中被多次引用。 |
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() 将模型绑定到给定的数据库。 |