Use marshmallow-sqlalchemy to deserialize the object, but an error occurred. I have passed the session object, which is a database DB, but still no effect, this problem has been 2 days, still can not solve.
my_db.py
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, scoped_session
DATABASE_URL = "mysql+pymysql://root:Cfzy2018!@xxxxx:xxxx/fastapi"
engine = create_engine(DATABASE_URL, echo=True)
SessionLocal = sessionmaker(
bind=engine,
autocommit=False,
autoflush=False,
expire_on_commit=False
)
my_session = scoped_session(SessionLocal)
Base = declarative_base()
Base.metadata.create_all(bind=engine)
def get_db():
session_db = my_session()
try:
yield session_db
except Exception as e:
logger.error("Exception info: %s", str(e))
session_db.rollback()
raise e
finally:
session_db.close()
song.py
@app.post("/create_song_sheet/")
async def create_song_sheet(request: Request, db: Session = Depends(get_db)):
user_dict = request.state.user # user_dict_data
user: UserDB = UserSchema().load(user_dict, session=db)
# other code
return {"status": "success", "data": user}
my_schemas.py
class SongSchema(SQLAlchemySchema):
class Meta:
model = SongDB
load_instance = True
include_relationships = True
My code should be working, but I don’t know what the problem is.