使用 FastAPI 依赖项将 MySQL 客户端库添加到您的应用程序

FastAPI 是一个现代的、快速(高性能)的 web 框架,非常适合构建 APIs。在构建应用程序时,很多时候我们需要与数据库进行交互。本文将向您展示如何使用 FastAPI 依赖项将 MySQL 客户端库添加到您的应用程序中。

整体流程概述

步骤 描述
1 创建 FastAPI 应用
2 安装 MySQL 客户端库
3 配置数据库连接
4 创建数据库模型
5 创建数据库依赖项
6 创建 CRUD 操作
7 运行 FastAPI 应用

每一步的详细说明

步骤 1: 创建 FastAPI 应用

首先,您需要创建一个基本的 FastAPI 应用。

from fastapi import FastAPI

# 创建 FastAPI 应用实例
app = FastAPI()

步骤 2: 安装 MySQL 客户端库

通常我们会使用 mysql-connector-python 或者 asyncmy。使用以下命令安装:

pip install mysql-connector-python

或者:

pip install asyncmy

步骤 3: 配置数据库连接

在应用中,您需要配置 MySQL 的连接信息,比如用户名、密码、主机名和数据库名。

import mysql.connector
from mysql.connector import Error

# MySQL 连接配置
db_config = {
    'user': 'your_username',
    'password': 'your_password',
    'host': 'localhost',
    'database': 'your_database'
}

# 创建连接
def create_connection():
    try:
        connection = mysql.connector.connect(**db_config)
        if connection.is_connected():
            print("成功连接到数据库")
    except Error as e:
        print(f"错误: {e}")
    return connection

步骤 4: 创建数据库模型

根据您的数据结构,创建必要的数据库模型。

from pydantic import BaseModel

# 用户模型
class User(BaseModel):
    id: int
    name: str
    email: str

步骤 5: 创建数据库依赖项

接下来,创建一个 FastAPI 依赖项,以便在处理请求时可以方便地使用数据库连接。

from fastapi import Depends

# 数据库依赖项
def get_db_connection():
    connection = create_connection()
    try:
        yield connection
    finally:
        connection.close()

步骤 6: 创建 CRUD 操作

现在,可以在应用中实现基本的 CRUD 操作。例如,创建一个获取用户的 API。

@app.get("/users/{user_id}", response_model=User)
def read_user(user_id: int, db: mysql.connector.connection_cext.CMySQLConnection = Depends(get_db_connection)):
    cursor = db.cursor(dictionary=True)
    cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
    user = cursor.fetchone()
    cursor.close()
    if user is None:
        raise HTTPException(status_code=404, detail="用户未找到")
    return user

步骤 7: 运行 FastAPI 应用

最后,您可以使用以下命令运行 FastAPI 应用:

uvicorn your_module:app --reload

数据库关系图示例

使用 Mermeid 语法可视化数据库关系如图所示:

erDiagram
    USERS {
        int id PK "用户ID"
        string name "用户姓名"
        string email "用户邮箱"
    }

总结

在本文中,我们详细介绍了如何将 MySQL 客户端库添加到 FastAPI 应用程序中。通过定义数据库连接、模型及依赖项,您可以轻松地与数据库交互。接下来,您可以根据自己的需求扩展更多功能,如添加更多的 CRUD 操作和用户身份验证。

希望这篇文章对您有所帮助,祝您在 FastAPI 开发旅程中一路顺风!如果您有任何问题,请随时提问。