首页 > 其他分享 >[FastAPI-31]嵌套注入

[FastAPI-31]嵌套注入

时间:2023-03-26 20:46:44浏览次数:56  
标签:username extractor None return FastAPI 31 嵌套 nickname

from typing import Union

from fastapi import Depends, FastAPI

app = FastAPI()

'''
嵌套注入
- 路径函数get_name需要的形参`username_or_nickname`有依赖条件,所以FastAPI会调用 `username_or_nickname_extractor`
- 执行`username_or_nickname_extractor`的时候,发现它也有依赖条件,所以FastAPI会调用 `username_extractor`
- 按照这个顺序,依次获取每个有依赖条件的参数的结果。最终,在路径函数内获取最终的结果。
'''

def username_extractor(username: Union[str, None] = None):
    return username


def username_or_nickname_extractor(
    username: str = Depends(username_extractor),
    nickname: Union[str, None] = None,
):
    if not username:
        return nickname
    return username


@app.get("/name")
def get_name(username_or_nickname: str = Depends(username_or_nickname_extractor)):
    return {"username_or_nickname": username_or_nickname}

标签:username,extractor,None,return,FastAPI,31,嵌套,nickname
From: https://www.cnblogs.com/leoshi/p/17259467.html

相关文章

  • 关于python编程中try...except的嵌套使用说明及注意事项
    今天笔者在写一个脚本时,情况比较复杂,在脚本中使用了try...except的嵌套,遇到了一些与预期不一样的结果于是笔者又研究了一下,try...except的嵌套使用,首先有一点是肯定的,那......
  • [FastAPI=30]依赖注入
    fromfastapiimportFastAPI,Dependsapp=FastAPI(title="依赖注入")'''依赖注入-共享一块相同逻辑的代码块-共享数据库连接-权限认证,登录状态认证'''BOO......
  • [FastAPI-29]用户注册API-File字段需要在 Form之前
    importtypingfromfastapiimportFastAPI,Form,File,UploadFilefrompydanticimportBaseModelapp=FastAPI(title="注册接口")'''1.需要输入账号密码头......
  • [FastAPI-28]上传多个文件
    importtypingfromfastapiimportFastAPI,File,UploadFileapp=FastAPI(title="Form表单")'''上传多个文件'''@app.post("/files",summary="通过内存缓存上......
  • [FastAPI-27]上传文件为可选项
    importtypingfromfastapiimportFastAPI,File,UploadFileapp=FastAPI(title="Form表单")'''上传文件为可选项'''@app.post("/upload_large_file",summa......
  • 力扣 131. 分割回文串
    131.分割回文串给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。......
  • Haskell CSCI3136 Ripple Effect
    HaskellCSCI3136RippleEffectProblemDescriptionRippleEffectorHakyuuisalogicpuzzlesomewhatsimilartoSudoku.Thepuzzleconsistsofarectangulargri......
  • 日报31
    在开始学习Adapter之前我们要来了解下这个MVC模式概念:举个例子:大型的商业程序通常由多人一同开发完成,比如有人负责操作接口的规划与设计,有人负责程序代码的编写如果要......
  • POJ--3187 Backward Digit Sums(暴搜/减枝)
    记录5:302023-3-25http://poj.org/problem?id=3178reference:《挑战程序设计竞赛(第2版)》第二章练习题索引p135DescriptionFJandhiscowsenjoyplayingamenta......
  • [FastAPI-24]jsonable_encoder 序列化
    importtypingimportjsonfromfastapiimportFastAPI,Responsefromfastapi.encodersimportjsonable_encoderfromdatetimeimportdatetimefrompydanticimpor......