Если в роутинге я укажу две зависимости Depends() то во вторую зависимость попадёт результат выполнения первой зависимости как параметр, или в Depends попадают только изначально заданные параметры. Пример: Есть роут где нужна авторизация, в зависимостях будет функция которая достаёт из кук jwt_token после чего проверяет его в db. Если я db (то есть сессию) вызову как зависимость в роуте перед зависимостью которая должна принять AsyncSession, попадёт ли AsyncSession в db? Код: @app.get("/") async def home(db: AsyncSession = Depends(get_session), user: UserSchema = Depends(get_current_user)): pass async def get_current_user(request: Request, db:AsyncSession): pass #request попадает автоматически, попадёт ли db? Python @app.get("/") async def home(db: AsyncSession = Depends(get_session), user: UserSchema = Depends(get_current_user)): pass async def get_current_user(request: Request, db:AsyncSession): pass #request попадает автоматически, попадёт ли db?
параметр-зависимость не передается в другие зависимости, но ты можешь аналогичным образом добавить получение нужного параметра внутри своей функции @app.get("/") async def home(db: AsyncSession = Depends(get_session), user: UserSchema = Depends(get_current_user)): pass async def get_current_user(request: Request, db: AsyncSession = Depends(get_session)): pass Python @app.get("/") async def home(db: AsyncSession = Depends(get_session), user: UserSchema = Depends(get_current_user)): pass async def get_current_user(request: Request, db: AsyncSession = Depends(get_session)): pass
Toil, спасибо, но тогда не оч понятно нахуя мне в моей функции Depends если по сути основная цель Depends, эт передать параметры из вызываемой функции внутрь функции переданной в Depends. Проще тогда будет async def get_current_user(request: Request, db: AsyncSession = get_session()): pass Код async def get_current_user(request: Request, db: AsyncSession = get_session()): pass