FastApi(二) -- 集成peewee操作数据库

FastApi(二) – 集成peewee操作数据库

peewee是什么

Peewee 是一个简单而强大的 Python ORM(对象关系映射)库,它提供了轻量级、简单易用的数据库操作功能。它的设计目标是提供一个简单而直观的 API,同时保持高性能和可扩展性,使得开发者能够轻松地在 Python 应用中进行数据库操作。

  1. 简单易用: Peewee 的 API 设计简洁清晰,易于理解和使用。它提供了类似于 Python 数据结构的对象模型,使得数据库操作变得非常直观和自然。
  2. 轻量级: Peewee 是一个轻量级的 ORM 库,它的代码库相对较小,没有过多的依赖。这使得它非常适合于小型项目或需要高性能的应用。
  3. 支持多种数据库后端: Peewee 支持多种流行的数据库后端,包括 SQLite、MySQL、PostgreSQL 等。这使得开发者可以根据项目需求选择最适合的数据库。
  4. 灵活性: Peewee 提供了丰富的查询构建器和条件表达式,使得开发者能够灵活地构建复杂的查询语句。同时,它还支持原生 SQL 查询,满足了更高级的需求。
  5. 性能优化: 尽管 Peewee 是一个轻量级的 ORM 库,但它仍然具有优秀的性能。它通过一些优化技巧和缓存机制来提高查询效率,同时保持了稳定性和可靠性。
  6. Peewee 拥有一个活跃的开发者社区,提供了丰富的文档和教程,以及持续的更新和维护。这使得开发者能够快速解决问题,并获取帮助和支持。

FastApi如何集成Peewee

  1. 准备工作

    1. 安装FastAPI与Peewee相关包

      pip install fastapi uvicron peewee
      
  2. 搭建FastApi项目并集成Peewee

    1. 创建一个新的 Python 文件,比如 app.py,并编写以下代码来创建一个基本的 FastAPI 应用:

      from fastapi import fastapi
      
      app = fastapi()
      
      if __name__ = "__main__":
          uvicoorn.run(app="main:app", host="localhost", port=8000)
      
    2. 引入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()
      
    3. 创建数据表的映

      -- 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

你可能感兴趣的:(FastAPI,fastapi,数据库,web3.py)