Peewee,一个既小巧又强大的 Python 库-轻松实现数据库的增删改查

目录

01初识 Peewee

为什么选择 Peewee?

02安装与配置

安装 Peewee

配置 Peewee

03定义模型

定义简单模型

定义复杂模型

04基本操作

创建记录

查询记录

更新记录

删除记录

05高级操作

复杂查询

事务处理

使用信号

模型迁移

06实战案例

简单博客系统

任务管理系统

07结语



01初识 Peewee

Peewee 是一个小巧但功能强大的 ORM 库,适用于小型项目到中型应用程序。它支持 SQLite、MySQL、PostgreSQL 等常见数据库,并且具有优雅的 API 和丰富的功能。Peewee 的设计理念是简单和灵活,使得它非常适合初学者和需要快速开发的场景。

为什么选择 Peewee?

  • 简单易用:Peewee 的 API 非常直观,上手容易。

  • 功能强大:支持复杂查询、事务、信号、迁移等功能。

  • 灵活性高:可以轻松扩展,满足不同需求。

  • 轻量级:代码量少,运行效率高,非常适合小型项目和快速开发。

既然 Peewee 这么棒,那我们就赶快开始吧!

02安装与配置

安装 Peewee

安装 Peewee 非常简单,只需要一行命令:

pip install peewee

配置 Peewee

在使用 Peewee 之前,我们需要配置数据库连接。这里以 SQLite 为例:

from peewee import SqliteDatabase

# 创建数据库连接
db = SqliteDatabase('my_database.db')

对于其他数据库,如 MySQL 和 PostgreSQL,配置方法类似:

# MySQL
from peewee import MySQLDatabase

db = MySQLDatabase('my_database', user='username', password='password', host='localhost', port=3306)

# PostgreSQL
from peewee import PostgresqlDatabase

db = PostgresqlDatabase('my_database', user='username', password='password', host='localhost', port=5432)

03定义模型

在 Peewee 中,我们通过定义模型类来表示数据库中的表。每个模型类都继承自 peewee.Model,并定义表中的字段。

定义简单模型

让我们定义一个简单的用户模型:

from peewee import Model, CharField, IntegerField

class BaseModel(Model):
    class Meta:
        database = db

class User(BaseModel):
    username = CharField()
    age = IntegerField()

# 创建表
db.connect()
db.create_tables([User])

在这个例子中,我们定义了一个 User 模型,包含两个字段:username 和 age。然后,我们创建了 User 表。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/717430.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言最终文章-二叉树

文章目录 前言二叉树的性质二叉树的存储方式顺序存储堆及其应用TopK问题堆排序 链式存储二叉树的练习1.二叉树查找值为x的节点2.判断是否为完全二叉树LC226.翻转二叉树[LC572. 另一棵树的子树](https://leetcode.cn/problems/subtree-of-another-tree/description/)两道选择题 …

python操作注册表没有权限(error:5拒绝访问)

在IDE中运行 1. Openkey( , , accesswinreg.KEY_ALL_ACCESS) 2. 管理员方式运行Vscode或PyCharm 如果要打包成应用呢? 怎么处理权限问题?

Python 循环语句

在Python当中,循环语句用于重复执行特定的代码块,知道某个条件不再满足为止。Python中常用的循环有两种:for 循环 和 while 循环,下面我会分别详细解释它们的用法和特点 for 循环 for循环用于遍历可迭代对象(iterable)&#xff0…

522. 最长特殊序列 II

题目 给定字符串列表 strs ,返回其中最长的特殊序列的长度。如果最长特殊序列不存在,返回 -1。 特殊序列定义如下:该序列为某字符串独有的子序列(即不能是其他字符串的子序列)。 字符串 s 的子序列可以通过删去字符…

学习笔记——网络管理与运维——SNMP(基本配置)

四、SNMP基本配置 1、SNMP配置举例 整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度&#x…

PaddleOCR学习——PP-OCR系列

相关知识前置: PP-LCNet PP-LCNetV3 PP-LCNetV3系列模型是PP-LCNet系列模型的延续,覆盖了更大的精度范围,能够适应不同下游任务的需要。PP-LCNetV3系列模型从多个方面进行了优化,提出了可学习仿射变换模块,对重参数…

人脸识别系统---年龄预测

一、预测年龄 1.加载预训练的人脸检测模型 face_cascade cv2.CascadeClassifier(haarcascade_frontalface_default.xml)2.加载预训练的性别和年龄识别模型 gender_net cv2.dnn.readNetFromCaffe(deploy_gender.prototxt, gender_net.caffemodel) age_net cv2.dnn.readNet…

Qwen-VL图文多模态大模型LoRA微调指南

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径:AI代理工作流大模型应用开发实用开源项目汇总大模…

数据可视化实验二:回归分析、判别分析与聚类分析

目录 一、使用回归分析方法分析某病毒是否与温度呈线性关系 1.1 代码实现 1.2 线性回归结果 1.3 相关系数验证 二、使用判别分析方法预测某病毒在一定的温度下是否可以存活,分别使用三种判别方法,包括Fish判别、贝叶斯判别、LDA 2.1 数据集展示&am…

软件改为开机自启动

1.按键 win R,输入“shell:startup”命令, 然后就可以打开启动目录了,如下: 2.然后,把要开机启动的程序的图标拖进去即可。 参考:开机启动项如何设置

App端接口用例设计方法和测试方法

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 前言 接口测试作为测试的重要一环,重点关注的是数据层面的输入输出,今天…

白帽子最喜欢用什么渗透测试工具?看看哪些是你用过的

一、白帽子最喜欢用什么安全工具? 2020 年的 HackerOne 黑客报告中,统计过白帽子们最喜欢用的软硬件工具。 从图中可以看到,89% 的白帽子都会使用 Burp Suite 这个 Web 应用安全测试工具,有 39% 会尝试自己写工具,第三名的 Fuzzers 是模糊测试工具。再后面主要是一些代理…

时间复杂度 空间复杂度分析

时间复杂度就是需要执行多少次&#xff0c;空间复杂度就是对象被创建了多少次。 O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(2^n) < O(n!) < O(n^n) 这里写目录标题 时间复杂度O(1)O(logn)、O(nlogn)O(mn)、O(m*n)最好、最坏情况时间复杂度平均情况…

SD-WAN在教育行业的应用及优势解析

随着教育领域的数字化转型&#xff0c;网络技术的需求变得愈发迫切。作为一种前沿的网络解决方案&#xff0c;SD-WAN正在为教育行业提供强有力的支持。本文将详细探讨SD-WAN在教育行业的应用&#xff0c;并分析其为教育行业带来的众多优势。 实现多校区高效互联 教育机构通常拥…

使用Multipass编译OpenHarmony工程

Multipass 是一个轻量级虚拟机管理器&#xff0c;支持 Linux、Windows 与 macOS&#xff0c;这是为希望使用单个命令提供全新 Ubuntu 环境的开发人员而设计的。使用 Linux 上的 KVM、Windows 上的 Hyper-V 和 macOS 上的 HyperKit 来以最小的开销运行 VM&#xff0c;同时它还可…

数据结构试题 16-17

先这样吧&#xff0c;&#xff0c;专业课不是统考&#xff0c;我发现每年的卷子风格都不太一样&#xff0c;侧重点也不一样。以及21的和16的发生了很大的改变。等明年1月再看看吧 那就先over啦 数据结构撒花&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&am…

Zenity向Ubuntu系统发送通知

文章目录 前言 一、Zenity是什么&#xff1f; 二、使用步骤 1.确认是否已安装 2.使用 三. 结论 前言 大家都知道&#xff0c;久坐带来的后果有多么痛苦&#xff0c;但是每天上班&#xff0c;一坐一整天&#xff0c;想着起来活动一下&#xff0c;干起活来就又忘啦&#x…

什么品牌洗地机性价比高?四大出色的王牌机型力荐

科技的发展让咱们的生活变得更加便捷&#xff0c;很多智能清洁家电的出现&#xff0c;例如洗地机&#xff0c;集合了扫地、吸尘、拖地、除菌的功能&#xff0c;帮助了我们高效地完成了家务活&#xff0c;给我们腾出了更多享受生活的时间。但&#xff0c;相信有不少的新手朋友们…

【教程】hexo 更换主题后,部署在 Github Page 无 CSS 样式

目录 前言环境hexo 更换主题解决部署到 Github Page 后无 CSS 样式的问题 前言 最近更换了 hexo 的主题后&#xff0c;重新部署到 Github Page 上发现不显示 CSS 样式&#xff0c;但在本地启动时又是正常的效果。此外&#xff0c;检查资源请求&#xff0c;发现多个 .css 文件请…

2024-6-17(沉默JVM,Spring)

1.反射 正射&#xff1a;Person person new Person(); 反射&#xff1a;我们只知道这个类的一些基本信息&#xff0c;就好像我们看电影的时候&#xff0c;为了抓住一个犯罪嫌疑人&#xff0c;警察就会问一些目击证人&#xff0c;根据这些证人提供的信息&#xff0c;找专家把…