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 类来返回错误响应。
在实际开发中,需要根据具体情况进行调整和优化。这个示例代码可以作为一个基本的参考。
更多推荐
【ChatGPT】python fastapi mysql 实现 增删改查的代码
发布评论