文章目录

    • 基础
      • 创建数据库管理对象
      • 定义自己的模型
      • 连接数据库并创建表
      • 插入数据
      • 查询数据
      • 更新数据
      • 删除数据
    • 进阶
      • 复合主键模型示例
      • 复杂查询示例(以Relation模型为例)

基础

创建数据库管理对象

from peewee import *db = MySQLDatabase('test_db', user='root', password='password', host='localhost', port=3306)

定义自己的模型


class User(Model):uid = AutoField() # 自增主键name = CharField(max_length=20)age = IntegerField(default=0)address = CharField(null = True) # 允许空class Meta:# 关联数据库,这是必选的database = db# 设置 编写和排序规则,这是可选的# table_settings = ["DEFAULT CHARSET=utf8mb4", "COLLATE=utf8mb4_unicode_ci"]

连接数据库并创建表


# 连接数据库
db.connect()# 往数据库创建表
db.create_tables([User, MyMeta])

插入数据


# 往数据库插入一条数据
User.create(name = 'yao7777', age = 18)# 通过字典插入
userInfo = {'name':'yao888', 'age': 28}
User.insert(userInfo).execute()

查询数据


users = User.select() # 获取所有用户信息
for user in users:print(user.name, user.age)users = User.select().where(User.name == 'yao7777') # 条件查询
users = User.select().where(User.name == 'yao7777', User.age == 18) # 多条件查询(AND)user = User.get_by_id(2) # 如果数据不存在会崩溃
user = User.get_or_none(User.uid == 900) # 如果数据不存在,返回 None
if user:print(user.name)

更新数据


users = User.select()
user = users[0]user.age = 28
user.address = '广东广州'
user.save()

删除数据


users = User.select()
user = users[0]
# 删除一条数据
user.delete_instance()# 删除表和数据
User.drop_table()
# 删除表数据
User.delete().execute()

进阶

复合主键模型示例


class Relation(Model):'''关联数据'''rid = IntegerField()'''仓库 ID'''mid = IntegerField()'''数据元 ID'''star = IntegerField(default = 0)'''本期 star'''starPrev = IntegerField(default = 0)'''上期 star'''class Meta:database = dbprimary_key = CompositeKey('rid', 'mid') # 2个主键

复杂查询示例(以Relation模型为例)

查找指定 mid 的所有数据,且排序按照 (star - starPrev) 的差值降序


relation = Relation.select(Relation.rid, Relation.star, (Relation.star - Relation.starPrev).alias('offsetStar')).order_by(SQL('offsetStar').desc()).where(Relation.mid == meta.id)

offsetStar 是给 (star - starPrev) 差值起的别名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96920.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96920.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/96920.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Java反射与动态代理详解:从原理到实践》

1. 反射(Reflection) 1.1 反射的概述 反射是Java语言的核心特性之一,它允许程序在运行状态下动态获取类的信息并操作类的成员(构造方法、成员变量、成员方法)。 专业定义 对于任意一个类,都能够知道这个类的…

golang7 数组切片

本视频详细讲解了Go语言中的集合类型数据结构,重点介绍了数组、切片、map和list四种集合类型。特别强调了切片和map的重要性,以及它们在实际开发中的应用。同时,详细阐述了数组的定义、操作及其与切片之间的区别,包括数组类型与元…

k8s-容器化部署论坛和商城服务(小白的“升级打怪”成长之路)

目录 一、配置文件编写 1、数据持久化 2、mysql主从复制 3、php解析环境 4、nginx服务 5、redis主从复制 6、tomcat服务 7、操作命令 8、在每个node节点操作上 9、更改服务文件加入redis缓存和实现访问动静分离 在存储主机上查看 10、更改商城应用文件 二、实现域…

智慧AI消防通道占用检测在危险区域的应用

智慧AI消防通道占用检测:构建工厂与仓库的安全防线在工业生产与物流仓储领域,工厂安全与仓库安全始终是企业运营的核心命题。消防通道作为紧急情况下的“生命通道”,其畅通性直接关系到人员疏散效率与火灾扑救效果。然而,传统人工…

LangGraph-2-Demo

状态:一个共享数据结构,表示应用程序的当前快照。它可以是任何 Python 类型,但通常是 TypedDict 或 Pydantic BaseModel。 节点:Python 函数,用于编码代理的逻辑。它们以当前 状态 作为输入,执行一些计算或…

基于硅基流动API构建智能聊天应用的完整指南

基于硅基流动API构建智能聊天应用的完整指南 一、引言:AI编程工具重塑开发范式 人工智能编程工具正在彻底改变软件开发的方式,使开发者能够快速构建以前需要大量专业知识的复杂应用。本文将深入探讨如何使用硅基流动(SiliconFlow)的API,结合…

深入解析MyBatis中#{}和${}的区别与应用场景

在MyBatis框架的使用过程中,SQL映射文件的编写是核心工作之一。而#{}和${}这两种参数占位符语法,虽然看起来相似,却有着本质的区别。正确理解和使用它们,不仅关系到应用程序的安全性,还会影响系统性能。本文将全面剖析…

ELKB日志分析平台 部署

ElasticSearch ELKB 日志分析 介绍 docker-compose一键部署ELK(elasticsearchlogstashkibana) 以下是使用 Docker Compose 部署 Elasticsearch、Logstash、Kibana 和 Beats(以 Filebeat 为例) 的完整方案,涵盖配置文件、关键参数说明及部署步…

File IO 字节流 | Java 学习日志 | 第 12 天

File 1.概述 File表示路径,可以表示文件和文件夹,可以存在也可以不存在 相对路径(相对当前项目),绝对路径。 构造方法File(file/string),File(file/string,string)。 public static void main(String[] ar…

基于SpringBoot的服装公司进销存管理系统设计与开发(代码+数据库+LW)

摘要 随着服装行业竞争的加剧,传统手工或简单电子表格管理进销存的方式已难以满足现代企业的需求,效率低下且易出错。基于SpringBoot框架的服装公司进销存管理系统应运而生,旨在通过信息化手段提升运营效率和服务质量。系统特别设计了销售员…

openFeign用的什么协议,dubbo用的什么协议

简单直接的答案是:​OpenFeign​:默认使用 ​HTTP​ 协议(通常是 HTTP/1.1,也支持 HTTP/2),通信格式为 ​RESTful JSON。​Dubbo​:默认使用 ​Dubbo 协议​(一种自定义的、基于 TCP…

Android SystemServer 系列专题【篇四:SystemServerInitThreadPool线程池管理】

本篇重点介绍一下SystemServerInitThreadPool,顾名思义此类针对SystemServer进程的提供了一套ThreadPool线程池的统一标准方案,下面从源码和日志的角度来剖析一个这个类。1、SystemServerInitThreadPool单例设计SystemServerInitThreadPool的源码路径在f…

2014-2024高教社杯全国大学生数学建模竞赛赛题汇总预览分析

一、分析赛题核心意义收集近 11 年的赛题并非简单的 “题目存档”,而是为了从历史规律、能力匹配、实战准备三个维度为参赛者或研究者提供价值。1.1把握竞赛命题趋势,降低选题盲目性赛题命题往往紧扣当年社会热点、科技前沿与行业痛点(如 202…

一个头像图片滚动轮播组件(React实现)

遇到一个效果,组件库里没有现成能用的组件,于是手搓了一个,传入图片url列表,和其他配置项即可直接使用。 轮播效果实现思路 假设共有10张图片轮流滚动,轮播图展示3张图片。给正在轮播的图片绑定visible类,轮…

从入门到理解:支持向量机的核心原理与实战思路

一、SVM 的核心目标:找 “最好” 的超平面。1.1 什么是 “超平面”?超平面是一个几何概念,简单来说:在 2 维空间(平面)中,超平面是一条直线(1 维);在 3 维空间…

Python 办公自动化实战:Excel 批量处理 + 自动发邮件

Python 办公自动化实战:Excel 批量处理 自动发邮件关键词: Python办公自动化 • Pandas • OpenPyXL • Email • 定时任务 摘要: 每月底还在手动处理几十份Excel报表并邮件发送?快来学习如何用Python全自动完成!本文…

高教杯数学建模2021-C 生产企业原材料的订购与运输

某建筑和装饰板材的生产企业所用原材料主要是木质纤维和其他植物素纤维材料, 总体可分为 A,B,C 三种类型。该企业每年按 48 周安排生产,需要提前制定 24 周的原 材料订购和转运计划,即根据产能要求确定需要订购的原材料供应商&…

【Python系列】Flask 和 FastAPI对比

博客目录1. 类型和设计目标2. 性能3. 异步支持4. 数据验证和文档5. 学习曲线和生态6. 使用场景示例对比Flask(同步)FastAPI(异步)总结Flask 和 FastAPI 都是 Python 中流行的 Web 框架,但它们的设计目标、特性和适用场…

把 AI 塞进「空调遥控器」——基于 MEMS 温湿阵列的 1 分钟极速房间热场扫描

标签:MEMS 阵列、热场扫描、极速空调、TinyML、RISC-V、零样本、离线推理、节能 ---- 背景:为什么空调遥控器要「画图」? 传统空调只有一个温湿度探头,经常“东边冷、西边热”。 • 大客厅 30 ㎡,温差 5 ℃&#xff1…

【机器学习】8 Logistic regression

本章目录 8 Logistic regression 245 8.1 Introduction 245 8.2 Model specification 245 8.3 Model fitting 245 8.3.1 MLE 246 8.3.2 Steepest descent 247 8.3.3 Newton’s method 249 8.3.4 Iteratively reweighted least squares (IRLS) 250 8.3.5 Quasi-Newton (variabl…