在FastAPI官方文档中,涉及数据库操作部分,FastAPI官方给出了FastAPI连接PostgreSQL数据库的案例,对MySQL数据库操作的讲解比较少,对于初学者想入入手FastAPI加MySQL可能比较难。本篇文章就来讲讲FastAPI连接MySQL数据库,并完成一系列的CRUD,文末将会给出具体的demo,供大家学习,希望能对正在学习或想学习FastAPI的朋友一点点启发。
这里,MySQL是什么?怎么安装?就不做过多的讲解了,有需要的朋友可以阅读我之前写过的一篇Python中MySQL的基本教程Python连接MySQL数据库的教程。
01SQLAlchemy介绍
在FastAPI中对数据库的操作有一个非常优秀的ORM库,利用此库在FastAPI中操作数据库可以快速实现FastAPI项目连接数据库,它就是SQLAlchemy。
SQLAlchemy的主要目标是改变您对数据库和SQL的思考方式!
SQLAlchemy是PythonSQL工具箱和对象关系映射器,为应用程序开发人员提供了SQL的全部功能和灵活性。它提供了一整套知名的企业级持久性模式,旨在高效,高性能地访问数据库,并适配了简单、高性能的Pythonic语言。
SQLAlchemy最著名的是对象关系映射器(ORM),它提供了数据映射器模式的可选组件,在该模式下,可以以开放式,多种方式将类映射到数据库,从而可以在数据库中开发对象模型和数据库模式。
02数据库配置
在了解完SQLAlchemy后,开始进入本文核心内容,FastAPI如何与MySQL组合在一起。
首先,配置完成MySQL相关的信息,由于MySQL连接信息相对固定,这里我将它写入了全局配置里面。
SQLALCHEMY_DATABASE_URI这里的连接格式是以pymysql作为连接,具体格式
mysql+pymysql://username:password
host/dbname[?options]03创建数据库引擎
在配置完成MySQL相关信息之后,创建一个数据库引擎用于执行数据CRUD相关操作。
create_engine传入两个参数,一个是刚才上面创建的databaseuri,一个是一个
pool_pre_ping(是否预加载连接池),再创建一个SessionLocal,这里的Session指的是DataSession。
auto