fastapi连接mysql

fastapi连接mysql

fastapi连接mysql

在Web开发中,与数据库进行交互是一个常见的任务。在很多情况下,我们需要将FastAPI应用程序连接到一个数据库,比如MySQL,以便能够从中读取数据或向其中写入数据。本文将详细介绍如何使用FastAPI来连接MySQL数据库。

步骤1:安装依赖

首先,我们需要安装一些必要的依赖:

pip install fastapi
pip install uvicorn
pip install sqlalchemy
pip install databases
pip install mysql-connector-python

步骤2:创建数据库连接

首先,我们需要创建数据库连接。在这里,我们将使用SQLAlchemy和databases库来实现与MySQL数据库的连接。

# main.py

from fastapi import FastAPI
from databases import Database
from sqlalchemy import create_engine, MetaData

# 设置数据库连接字符串
DATABASE_URL = "mysql+mysqlconnector://username:password@localhost/dbname"

# 创建FastAPI应用
app = FastAPI()

# 创建数据库引擎
engine = create_engine(DATABASE_URL)

# 创建数据库对象
database = Database(DATABASE_URL)
metadata = MetaData()

@app.on_event("startup")
async def startup():
    await database.connect()

@app.on_event("shutdown")
async def shutdown():
    await database.disconnect()

在上面的代码中,我们先创建了一个DATABASE_URL的变量,用来存储MySQL数据库的连接字符串,其中包括用户名、密码、主机名和数据库名称。然后创建了一个FastAPI应用,以及一个数据库引擎和数据库对象。在应用启动时,通过startup事件连接到数据库,在应用关闭时通过shutdown事件断开连接。

步骤3:执行SQL查询

接下来,我们可以执行SQL查询并获取结果。在这里,我们创建一个API端点,用于查询数据库中的所有用户。

# main.py

from fastapi import FastAPI
from databases import Database
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, select

# 设置数据库连接字符串
DATABASE_URL = "mysql+mysqlconnector://username:password@localhost/dbname"
# 创建FastAPI应用
app = FastAPI()
# 创建数据库引擎
engine = create_engine(DATABASE_URL)
# 创建数据库对象
database = Database(DATABASE_URL)
metadata = MetaData()

# 创建users表
users = Table(
    "users",
    metadata,
    Column("id", Integer, primary_key=True),
    Column("name", String(50)),
)

@app.on_event("startup")
async def startup():
    await database.connect()

@app.on_event("shutdown")
async def shutdown():
    await database.disconnect()

@app.get("/users/")
async def get_users():
    query = users.select()
    return await database.fetch_all(query)

在上面的代码中,我们首先创建了一个users表,该表包含idname两个字段。然后创建了一个API端点/users/,通过执行users.select()查询数据库中的所有用户,并将结果返回给客户端。

步骤4:运行FastAPI应用

现在,我们可以使用uvicorn运行FastAPI应用,以及访问/users/端点来查看数据库中的所有用户。

uvicorn main:app --reload

打开浏览器访问http://localhost:8000/users/,你将看到数据库中的所有用户信息。

总结

通过以上步骤,我们成功地使用FastAPI连接到了MySQL数据库,并实现了查询数据库的功能。在实际项目中,你可以根据自己的需求进一步扩展这个功能,比如实现插入、更新和删除数据等操作。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程