Soy nuevo en el mundo FastAPI, estoy creando una API para obtener y publicar los datos en la base de datos MySQL. Seguí algunos enlaces en Internet y desarrollé el siguiente código
DatabaseConnection.py
from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base sql_database_url="mysql://root:root@localhost:3306/first_db" engine=create_engine(sql_database_url) sessionLocal=sessionmaker(autocommit=False,bind=engine) base=declarative_base()ClasePrincipal.py
from fastapi import FastAPI,Query,Depends from sqlalchemy import Column,String,Integer from typing import Optional,List from pydantic import BaseModel from sqlalchemy.orm import Session from DatabaseConnection import engine,sessionLocal,base app=FastAPI() class User(base): __tablename__="users" id=Column(Integer,primary_key=True,index=True) name=Column(String(255),unique=True,index=True) class UserSchema(BaseModel): id:int name:str class Config: orm_model=True base.metadata.create_all(bind=engine) @app.post("/create-user") def createUser(userSchema:UserSchema): user=User(id=userSchema.id,name=userSchema.name) sessionLocal().add(user) sessionLocal().commit() return user Cuando intento ejecutar esta API usando UVICorn, estaba funcionando correctamente y la tabla también se creó correctamente, pero los datos que estoy enviando a través del cuerpo no se agregan a la tabla.
La tabla muestra que se agrega un valor nulo \
he referido enlace
Cualquier ayuda será apreciada. Gracias por adelantado
Gracias @anjaneyulubatta505 por la ayuda.
pero necesitamos hacer los cambios a continuación para publicar datos en la base de datos
@app.post("/create-user") def createUser(userSchema:UserSchema): user = User(id=userSchema.id, name=userSchema.name) with Session(bind=engine) as session: session.add(user) session.commit() return userenlaces referidos
No está confirmando el cambio en la base de datos. Simplemente cambie su código como se muestra a continuación para que funcione.
# ... imports and other stuff from DatabaseConnection import sessionLocal @app.post("/create-user") def createUser(userSchema:UserSchema): user = User(id=userSchema.id, name=userSchema.name) with sessionLocal() as session: session.add(user) session.commit() return user