【ChatGPT】python fastapi mysql 实现 增删改查的代码

python fastapi mysql 实现 增删改查的代码

这段代码也是通过ChatGPT自动化实现的,技术实在是强悍!!!

以下是使用 Python FastAPI 和 MySQL 实现增删改查的示例代码:

from fastapi import FastAPI
from fastapi import HTTPException
from pydantic import BaseModel
import mysql.connector

app = FastAPI()

# 数据库配置
config = {
    'user': 'root',
    'password': 'password',
    'host': 'localhost',
    'database': 'test'
}

# 连接数据库
db = mysql.connector.connect(**config)
cursor = db.cursor()


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


# 获取所有用户
@app.get("/users")
def read_users():
    query = "SELECT id, name, age, email FROM users"
    cursor.execute(query)
    result = cursor.fetchall()

    users = []
    for row in result:
        user = dict(zip(cursor.column_names, row))
        users.append(user)

    return users


# 获取单个用户
@app.get("/users/{user_id}")
def read_user(user_id: int):
    query = "SELECT id, name, age, email FROM users WHERE id = %s"
    cursor.execute(query, (user_id,))
    result = cursor.fetchone()

    if result is None:
        raise HTTPException(status_code=404, detail="User not found")

    user = dict(zip(cursor.column_names, result))
    return user


# 创建用户
@app.post("/users")
def create_user(user: User):
    query = "INSERT INTO users (id, name, age, email) VALUES (%s, %s, %s, %s)"
    values = (user.id, user.name, user.age, user.email)
    cursor.execute(query, values)
    db.commit()

    return {"message": "User created successfully"}


# 更新用户
@app.put("/users/{user_id}")
def update_user(user_id: int, user: User):
    query = "UPDATE users SET name = %s, age = %s, email = %s WHERE id = %s"
    values = (user.name, user.age, user.email, user_id)
    cursor.execute(query, values)
    db.commit()

    if cursor.rowcount == 0:
        raise HTTPException(status_code=404, detail="User not found")

    return {"message": "User updated successfully"}


# 删除用户
@app.delete("/users/{user_id}")
def delete_user(user_id: int):
    query = "DELETE FROM users WHERE id = %s"
    cursor.execute(query, (user_id,))
    db.commit()

    if cursor.rowcount == 0:
        raise HTTPException(status_code=404, detail="User not found")

    return {"message": "User deleted successfully"}

在这个示例代码中,我们使用了 FastAPI 和 Pydantic 库来定义路由和数据模型。我们还使用了 MySQL Connector 库来连接和操作 MySQL 数据库。

我们定义了一个 User 类来表示用户数据模型,并使用了 HTTPException 类来处理 HTTP 错误。在每个路由函数中,我们执行了 SQL 查询或修改操作,并将结果转换为 Python 字典返回。如果出现错误,我们使用 HTTPException 类来返回错误响应。

在实际开发中,需要根据具体情况进行调整和优化。这个示例代码可以作为一个基本的参考。

你可能感兴趣的:(Python,fastapi,实用工具,mysql,python,fastapi)