FastApi(二) – 集成peewee操作数据库
peewee是什么
Peewee 是一个简单而强大的 Python ORM(对象关系映射)库,它提供了轻量级、简单易用的数据库操作功能。它的设计目标是提供一个简单而直观的 API,同时保持高性能和可扩展性,使得开发者能够轻松地在 Python 应用中进行数据库操作。
- 简单易用: Peewee 的 API 设计简洁清晰,易于理解和使用。它提供了类似于 Python 数据结构的对象模型,使得数据库操作变得非常直观和自然。
- 轻量级: Peewee 是一个轻量级的 ORM 库,它的代码库相对较小,没有过多的依赖。这使得它非常适合于小型项目或需要高性能的应用。
- 支持多种数据库后端: Peewee 支持多种流行的数据库后端,包括 SQLite、MySQL、PostgreSQL 等。这使得开发者可以根据项目需求选择最适合的数据库。
- 灵活性: Peewee 提供了丰富的查询构建器和条件表达式,使得开发者能够灵活地构建复杂的查询语句。同时,它还支持原生 SQL 查询,满足了更高级的需求。
- 性能优化: 尽管 Peewee 是一个轻量级的 ORM 库,但它仍然具有优秀的性能。它通过一些优化技巧和缓存机制来提高查询效率,同时保持了稳定性和可靠性。
- Peewee 拥有一个活跃的开发者社区,提供了丰富的文档和教程,以及持续的更新和维护。这使得开发者能够快速解决问题,并获取帮助和支持。
FastApi如何集成Peewee
-
准备工作
-
安装FastAPI与Peewee相关包
pip install fastapi uvicron peewee
-
-
搭建FastApi项目并集成Peewee
-
创建一个新的 Python 文件,比如
app.py
,并编写以下代码来创建一个基本的 FastAPI 应用:from fastapi import fastapi app = fastapi() if __name__ = "__main__": uvicoorn.run(app="main:app", host="localhost", port=8000)
-
引入peewee包,并连接数据库(以mysql数据库为例)
from peewee import MySQLDatabase mysqlDb = MySQLDatabase( database='book_libs', user='root', password='passwrod', host='127.0.0.1', port=3306) # 开启服务时连接数据库 app.on_event('startup') def startup(): mysqlDb.connect() # 关闭服务时断开连接 @app.on_event('shutdown') def shutdown(): mysqlDb.close()
-
创建数据表的映
-- book_libs.`user` definition CREATE TABLE `user` ( `id` bigint unsigned NOT NULL COMMENT '用户id', `user_name` varchar(100) NOT NULL COMMENT '用户名称', `user_code` varchar(100) NOT NULL COMMENT '用户编码', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '编辑时间', `create_by` bigint unsigned NOT NULL COMMENT '创建人', `gender` int NOT NULL DEFAULT '1' COMMENT '性别(1 男 0 女)', `avatar` varchar(100
-