前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Peewee 使用手册

Peewee 使用手册

作者头像
星辉
发布2021-03-04 10:33:07
1.1K0
发布2021-03-04 10:33:07
举报

文章目录

Peewee 是什么

Peewee 即 Python OMR 框架之一。

如何使用

基本步骤

  • 通过 pip3 下载 peewee
  • 新建 models.py 模型文件
  • 在 models.py 中加入以下基础代码
  • 运行 models.py,在 mysql 中生成 new_record 表

连接数据库

代码语言:javascript
复制
from peewee import *
from settings import DATABASES

# 连接数据库
MYSQL_DB = MySQLDatabase(
    host=DATABASES['DEFAULT']['HOST'],
    port=DATABASES['DEFAULT']['PORT'],
    user=DATABASES['DEFAULT']['USER'],
    passwd=DATABASES['DEFAULT']['PASSWORD'],
    database=DATABASES['DEFAULT']['NAME'],
)

class BaseModel(Model):
    """基础模型类"""

    class Meta:
        database = MYSQL_DB

创建数据表

代码语言:javascript
复制
class NewRecord(BaseModel):
    """NewRecord 模型类"""

    field_1 = CharField(max_length=10, null=True)
    field_2 = CharField(max_length=100, null=True)
    field_3 = IntegerField(default=0)
    field_4 = TextField()

    class Meta:
        db_table = 'new_record'

if __name__ == '__main__':
    # 创建表
    NewRecord.create_table()

插入一条数据记录

代码语言:javascript
复制
new_record = NewRecord()
new_record.field_1 = "field_1"
new_record.field_2 = "field_2"
new_record.field_3 = 0
new_record.field_4 = "field_4"
new_record.save()

获取条件过滤后的数据记录

代码语言:javascript
复制
from modules.models import NewRecord

def get_data_list():
    """获取数据列表

    :return:
    """

    data_list = []
    new_records = NewRecord.select().where(
        NewRecord.status == 0).order_by(
        NewRecord.id)

    for new_record in new_records:
        _data = {
            'field_1': new_record.field_1,
            'field_2': new_record.field_2,
            'field_3': new_record.field_3
        }
        data_list.append(_data)

    return data_list

更新数据记录

代码语言:javascript
复制
def update_new_record_field_3(
        field_1, field_2,
        field_3):
    """更新特定查询数据字段 field_3

    :param field_1: 待更新 field_1
    :param field_2: 待更新 field_2
    :param field_3: 待更新 field_3
    :return:
    """

    update_instance = NewRecord.update(
        {
            NewRecord.field_3: field_3
        }
    ).where(NewRecord.field_1 == field_1
            and NewRecord.field_2 == field_2)
    update_instance.execute()

查询单条数据记录

代码语言:javascript
复制
_record = NewRecord.get(NewRecord.field_1 == field_1 and NewRecord.field_2 == field_2)
print(_record.field_1, _record.field_2)

其他要点

  • 联合约束的创建
代码语言:javascript
复制
class Meta:
        db_table = 'new_record'
        constraints = [SQL('UNIQUE KEY(field_1, field_2)')]
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • Peewee 是什么
  • 如何使用
    • 基本步骤
      • 连接数据库
        • 创建数据表
          • 插入一条数据记录
            • 获取条件过滤后的数据记录
              • 更新数据记录
                • 查询单条数据记录
                  • 其他要点
                  相关产品与服务
                  数据库
                  云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档