- Peewee教程
- Peewee - 主页
- Peewee - 概述
- Peewee - 数据库类
- Peewee - 模型
- Peewee - 野外课程
- Peewee - 插入新记录
- Peewee - 选择记录
- Peewee - 过滤器
- Peewee - 主键和复合键
- Peewee - 更新现有记录
- Peewee - 删除记录
- Peewee - 创建索引
- Peewee - 约束
- Peewee - 使用 MySQL
- Peewee - 使用 PostgreSQL
- Peewee - 动态定义数据库
- Peewee - 连接管理
- Peewee - 关系与加入
- Peewee - 子查询
- Peewee - 排序
- Peewee - 计数和聚合
- Peewee - SQL 函数
- Peewee - 检索行元组/字典
- Peewee - 用户定义的运算符
- Peewee - 原子事务
- Peewee - 数据库错误
- Peewee - 查询生成器
- Peewee - 与 Web 框架集成
- Peewee - SQLite 扩展
- Peewee - PostgreSQL 和 MySQL 扩展
- Peewee - 使用 CockroachDB
- Peewee有用资源
- Peewee - 快速指南
- Peewee - 有用的资源
- Peewee - 讨论
Peewee - 野外课程
Model 类包含一个或多个属性,这些属性是 Peewee 中 Field 类的对象。基字段类不是直接实例化的。Peewee 为等效的 SQL 数据类型定义了不同的子类。
Field 类的构造函数具有以下参数 -
先生编号 | 构造函数及描述 |
---|---|
1 | 列名(字符串) 指定字段的列名称。 |
2 | 主键(布尔值) 字段是主键。 |
3 | 约束(列表) 应用于列的约束列表 |
4 | 选择(列表) 映射列值以显示标签的二元组的迭代。 |
5 | 空(布尔值) 字段允许 NULL。 |
6 | 索引(布尔值) 在字段上创建索引。 |
7 | 唯一(布尔) 在字段上创建唯一索引。 |
8 | 默认 默认值。 |
9 | 排序规则(str) 字段的排序规则名称。 |
10 | 帮助文本 (str) 用于字段、元数据目的的帮助文本。 |
11 | 详细名称 (str) 用于字段、元数据目的的详细名称。 |
Field类的子类映射到各种数据库中相应的数据类型,即SQLite、PostgreSQL、MySQL等。
数值字段类
Peewee 中的数字字段类如下 -
先生编号 | 字段类别和描述 |
---|---|
1 | 整数字段 用于存储整数的字段类。 |
2 | 大整数字段 用于存储大整数的字段类(分别映射到 SQLite、PostegreSQL 和 MySQL 中的 integer、bigint 和 bigint 类型)。 |
3 | 小整数字段 用于存储小整数的字段类(如果数据库支持)。 |
4 | 浮点字段 用于存储浮点数的字段类对应于实际数据类型。 |
5 | 双场 用于存储双精度浮点数的字段类映射到相应 SQL 数据库中的等效数据类型。 |
6 | 小数字段 用于存储十进制数字的字段类。参数如下 -
|
文本字段
Peewee 中可用的文本字段如下 -
先生编号 | 字段和描述 |
---|---|
1 | 查菲尔德 用于存储字符串的字段类。最多 255 个字符。等效的 SQL 数据类型是 varchar。 |
2 | 固定字符字段 用于存储固定长度字符串的字段类。 |
3 | 文本域 用于存储文本的字段类。映射到 SQLite 和 PostgreSQL 中的 TEXT 数据类型以及 MySQL 中的长文本。 |
二进制字段
Peewee 中的二进制字段解释如下 -
先生编号 | 字段和描述 |
---|---|
1 | 斑点字段 用于存储二进制数据的字段类。 |
2 | 位域 用于在 64 位整数列中存储选项的字段类。 |
3 | 大位字段 用于在二进制大对象 (BLOB) 中存储任意大位图的字段类。该字段将根据需要增加底层缓冲区。 |
4 | UUID字段 用于存储通用唯一标识符 (UUID) 对象的字段类。映射到 Postgres 中的 UUID 类型。SQLite 和 MySQL 没有 UUID 类型,它存储为 VARCHAR。 |
日期和时间字段
Peewee 中的日期和时间字段如下 -
先生编号 | 字段和描述 |
---|---|
1 | 日期时间字段 用于存储 datetime.datetime 对象的字段类。接受特殊的参数字符串格式,可以使用该格式对日期时间进行编码。 |
2 | 日期字段 用于存储 datetime.date 对象的字段类。接受特殊的参数字符串格式来编码日期。 |
3 | 时间场 用于存储 datetime.time 对象的字段类接受特殊的参数格式以显示编码时间。 |
由于 SQLite 没有 DateTime 数据类型,因此该字段被映射为字符串。
外键字段
此类用于在两个模型中建立外键关系,从而在数据库中的相应表中建立外键关系。此类使用以下参数实例化 -
先生编号 | 字段和描述 |
---|---|
1 | 型号(模型) 型号可供参考。如果设置为“self”,则它是自引用外键。 |
2 | 场(场) 模型上引用的字段(默认为主键)。 |
3 | 反向引用 (str) 用于反向引用的访问器名称。“+”禁用反向引用访问器。 |
4 | on_delete (str) 关于删除操作。 |
5 | on_update(str) 更新操作。 |
6 | 惰性加载(布尔值) 当访问外键字段属性时,获取相关对象。如果为 FALSE,访问外键字段将返回存储在外键列中的值。 |
例子
这是ForeignKeyField 的示例。
from peewee import * db = SqliteDatabase('mydatabase.db') class Customer(Model): id=IntegerField(primary_key=True) name = TextField() address = TextField() phone = IntegerField() class Meta: database=db db_table='Customers' class Invoice(Model): id=IntegerField(primary_key=True) invno=IntegerField() amount=IntegerField() custid=ForeignKeyField(Customer, backref='Invoices') class Meta: database=db db_table='Invoices' db.create_tables([Customer, Invoice])
执行上述脚本时,将运行以下 SQL 查询 -
CREATE TABLE Customers ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, address TEXT NOT NULL, phone INTEGER NOT NULL ); CREATE TABLE Invoices ( id INTEGER NOT NULL PRIMARY KEY, invno INTEGER NOT NULL, amount INTEGER NOT NULL, custid_id INTEGER NOT NULL, FOREIGN KEY ( custid_id ) REFERENCES Customers (id) );
在 SQLiteStuidio GUI 工具中验证时,表结构如下所示 -
其他字段类型
Peewee 中的其他字段类型包括 -
先生编号 | 字段和描述 |
---|---|
1 | IP字段 用于有效存储 IPv4 地址(作为整数)的字段类。 |
2 | 布尔字段 用于存储布尔值的字段类。 |
3 | 自动场 用于存储自增主键的字段类。 |
4 | 身份字段 用于使用新的 Postgres 10 IDENTITY存储自动递增主键的字段类用于使用新的 Postgres 10 IDENTITY 列类型存储自动递增主键的字段类。列类型。 |