目录
? 1. 安装 Peewee
?️ 2. 定义模型(Model)
? 3. 创建表
➕ 4. 插入数据(Create)
? 5. 查询数据(Read)
?️ 6. 更新数据(Update)
?️ 7. 删除数据(Delete)
? 8. 使用事务(可选)
✅ 小结:常用操作一览
首页 后端开发 Python教程 python peewee orm示例

python peewee orm示例

Jul 28, 2025 am 01:21 AM
python

安装 Peewee 使用 pip install peewee;2. 定义 User 和 Post 模型并绑定 SQLite 数据库;3. 调用 create_tables() 创建数据表;4. 使用 create() 或 save() 插入数据;5. 通过 select()、get()、where() 等方法实现查询,支持条件、模糊和关联查询;6. 更新数据可直接修改实例后 save() 或使用 update().execute() 批量更新;7. 删除使用 delete_instance(),需注意外键级联需显式设置 on_delete='CASCADE';8. 事务操作使用 db.atomic() 包裹确保原子性;操作完成后应妥善管理数据库连接,适合中小型项目快速开发,总结完毕。

python peewee orm example

使用 Peewee ORM 操作数据库非常简单,适合中小型项目。下面是一个完整的 Python Peewee ORM 示例,涵盖模型定义、增删改查(CRUD)操作,使用 SQLite 作为数据库。

python peewee orm example

? 1. 安装 Peewee

pip install peewee

?️ 2. 定义模型(Model)

假设我们要管理一个博客系统的用户和文章。

from peewee import *

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

class User(Model):
    username = CharField(unique=True)
    email = CharField()
    active = BooleanField(default=True)
    created_at = DateTimeField(constraints=[SQL('DEFAULT CURRENT_TIMESTAMP')])

    class Meta:
        database = db  # 绑定数据库

class Post(Model):
    title = CharField()
    content = TextField()
    user = ForeignKeyField(User, backref='posts')  # 用户的 posts 属性可访问文章
    created_at = DateTimeField(constraints=[SQL('DEFAULT CURRENT_TIMESTAMP')])

    class Meta:
        database = db

? 3. 创建表

def create_tables():
    with db:
        db.create_tables([User, Post])

调用一次即可:

python peewee orm example
create_tables()

➕ 4. 插入数据(Create)

# 创建用户
user = User.create(username='alice', email='alice@example.com')
# 或者
user2 = User(username='bob', email='bob@example.com')
user2.save()

# 创建文章
post = Post.create(
    title='First Post',
    content='Hello, this is my first blog post!',
    user=user
)

? 5. 查询数据(Read)

# 获取所有用户
for user in User.select():
    print(user.username, user.email)

# 查询单个用户
try:
    user = User.get(User.username == 'alice')
    print(user.email)
except User.DoesNotExist:
    print("User not found")

# 查询某个用户的所有文章
for post in user.posts:
    print(post.title, post.content)

# 条件查询
active_users = User.select().where(User.active == True)
for u in active_users:
    print(u.username)

# 模糊查询
users_with_a = User.select().where(User.username.contains('a'))

?️ 6. 更新数据(Update)

# 更新单个字段
user.email = 'alice_new@example.com'
user.save()

# 批量更新
User.update(active=False).where(User.username == 'bob').execute()

?️ 7. 删除数据(Delete)

# 删除一篇文章
post = Post.get(Post.title == 'First Post')
post.delete_instance()

# 删除用户(会级联删除相关文章,如果外键设置了 cascade)
user.delete_instance()

⚠️ 注意:默认外键不启用级联删除。如需启用,定义外键时加上:

user = ForeignKeyField(User, backref='posts', on_delete='CASCADE')

? 8. 使用事务(可选)

with db.atomic():
    User.create(username='charlie', email='charlie@example.com')
    Post.create(title='New Post', content='...', user=user)

✅ 小结:常用操作一览

操作 示例
插入 User.create(name='x')model.save()
查询 User.select().where(...)
获取单条 User.get(User.id == 1)
更新 query = User.update(...).where(...).execute()
删除 instance.delete_instance()
关联查询 ForeignKeyField backref

基本上就这些。Peewee 轻量、直观,特别适合快速开发小项目或脚本中使用数据库。不复杂但容易忽略细节,比如 db.connect()db.close() 在 Web 应用中要手动管理连接(Flask/Django 集成时需注意)。

python peewee orm example

以上是python peewee orm示例的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

PHP教程
1582
276
一文了解什么是加密货币交易中的情绪分析? 一文了解什么是加密货币交易中的情绪分析? Aug 14, 2025 am 11:15 AM

目录什么是加密货币交易中的情绪分析?为什么情绪分析在加密货币投资中很重要情绪数据的关键来源a.社交媒体平台b.新闻媒体c.市场指标情绪分析的工具和技术情绪分析中常用的工具:采用的技术:将情感分析整合到交易策略中交易者如何使用它:策略示例:假设BTC交易场景场景设置:情感信号:交易者的解读:决策:结果:情感分析的局限性和风险利用情感进行更智能的加密货币交易理解市场情绪在加密货币交易中变得越来越重要。最近一项2025年的研究由Hamid

如何处理不适合内存的Python中的大型数据集? 如何处理不适合内存的Python中的大型数据集? Aug 14, 2025 pm 01:00 PM

当Python中处理超出内存的大型数据集时,不能一次性加载到RAM中,而应采用分块处理、磁盘存储或流式处理等策略;可通过Pandas的chunksize参数分块读取CSV文件并逐块处理,使用Dask实现类似Pandas语法的并行化和任务调度以支持大内存数据操作,编写生成器函数逐行读取文本文件减少内存占用,利用Parquet列式存储格式结合PyArrow高效读取特定列或行组,使用NumPy的memmap对大型数值数组进行内存映射以按需访问数据片段,或将数据存入SQLite或DuckDB等轻量级数据

如何在Sublime文本中调试Python代码? 如何在Sublime文本中调试Python代码? Aug 14, 2025 pm 04:51 PM

UseSublimeText’sbuildsystemtorunPythonscriptsandcatcherrorsbypressingCtrl Baftersettingthecorrectbuildsystemorcreatingacustomone.2.Insertstrategicprint()statementstocheckvariablevalues,types,andexecutionflow,usinglabelsandrepr()forclarity.3.Installth

如何在Sublime文本中运行Python代码? 如何在Sublime文本中运行Python代码? Aug 16, 2025 am 04:58 AM

确保已安装Python并将其添加到系统PATH,通过终端运行python--version或python3--version验证;2.将Python文件保存为.py扩展名,如hello.py;3.在SublimeText中创建自定义构建系统,Windows用户使用{"cmd":["python","-u","$file"]},macOS/Linux用户使用{"cmd":["python3

如何在VScode中调试Python脚本 如何在VScode中调试Python脚本 Aug 16, 2025 am 02:53 AM

要调试Python脚本,需先安装Python扩展并配置解释器,然后创建launch.json文件设置调试配置,接着在代码中设置断点并按F5启动调试,脚本将在断点处暂停,允许检查变量和单步执行,最终通过查看控制台输出、添加日志或调整参数等方式排查问题,确保环境正确后调试过程简单高效。

如何在VSCODE中自动格式化Python代码 如何在VSCODE中自动格式化Python代码 Aug 14, 2025 pm 04:10 PM

toAutomation formatemationalformatpytpythoncodeinvscode,installblackusingpipinstallblack,installtheofficialmicrosoftpythonextension,setblackastheformatterinsettings.jsonwith“ python.formatting.formatting.provider”

如何在Sublime文本中创建一个Python项目? 如何在Sublime文本中创建一个Python项目? Aug 16, 2025 am 08:53 AM

InstallSublimeTextandPython,thenconfigureabuildsystembycreatingaPython3.sublime-buildfilewiththeappropriatecmdandselectorsettingstoenablerunningPythonscriptsviaCtrl B.2.OrganizeyourprojectbycreatingadedicatedfolderwithPythonfilesandsupportingdocument

收益率关键字如何在Python中起作用 收益率关键字如何在Python中起作用 Aug 15, 2025 am 08:23 AM

yield关键字用于定义生成器函数,使其能暂停执行并逐个返回值,之后从暂停处恢复;生成器函数返回生成器对象,具有惰性求值特性,可节省内存,适用于处理大文件、流数据和无限序列等场景,且生成器是迭代器,支持next()和for循环,但无法倒回,必须重新创建才能再次迭代。

See all articles