我正在创建一个包含用户数据库的数据库,并且我正在尝试通过Python开发的API(FastAPI)填充该表
我拥有的相关Python代码是:
class User(BaseModel):
NOMBRE: str
APELLIDOS: str
USUARIO: str
EMAIL: str
NACIMIENTO: datetime.date
SEXO: str
ALTURA: float
PESO: float
@app.post("/add_user")
def add_user(user: User):
values = (user.NOMBRE, user.APELLIDOS, user.USUARIO, user.EMAIL, user.NACIMIENTO, user.SEXO, user.ALTURA, user.PESO)
sql_query = "INSERT INTO Usuarios (Nombre, Apellidos, Usuario, Email, Nacimiento, Sexo, Altura, Peso) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)"
mycursor.execute(sql_query, values)
return {"message": "Usuario Insertado"}
当我尝试通过 Postman 调用此 post 方法时,没有出现任何问题,但数据未添加到数据库中(查看图片)
我错过了什么?!?!?!我对编程有点生疏,对 API/数据库编码相当陌生,我什至不知道要搜索什么或要测试什么。如果我遗漏任何信息,请告诉我。
我尝试将这些值一一包含在内,以防万一我格式错误,但运气没有改变。我不知道我做错了什么。
您没有在函数中使用
commit()
方法,因此数据库中没有任何操作。
像这样更改你的函数:
@app.post("/add_user")
def add_user(user: User):
values = (user.NOMBRE, user.APELLIDOS, user.USUARIO, user.EMAIL, user.NACIMIENTO, user.SEXO, user.ALTURA, user.PESO)
sql_query = "INSERT INTO Usuarios (Nombre, Apellidos, Usuario, Email, Nacimiento, Sexo, Altura, Peso) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)"
mycursor.execute(sql_query, values)
mycursor.commit()
mycursor.close()
return {"message": "Usuario Insertado"}
我还建议看看SQLAlchemy 您可以在这里找到更多信息https://fastapi.tiangolo.com/tutorial/sql-databases/