在fast api中,如何使用可选参数?

2024-10-02 14:16:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经通读了文档,这似乎对我不起作用。我跟着这个{a1}。但是我不确定它是否与我试图做的事情有关,我认为这个文档是用来传递这样的查询的-site.com/endpoint?keyword=test

这是我的目标:api.site.com/test/(可选_字段)

因此,如果有人转到“test”端点,那么它会将可选字段默认为一个参数,但是如果他们在那里添加了一些内容,那么它会将其作为一个输入

话虽如此,我的代码如下:

    @app.get("/company/{company_ticker}/model/{financialColumn}", dependencies=[Depends(api_counter)])
    async def myendpoint(
        company_ticker: str,
        financialColumn: Optional[str] = 'netincome',
        ..

        myFunction(company_ticker, financialColumn)

我想做的是,如果他们只是去端点而没有可选标志,那么它默认为“netincome”,但是如果他们添加了一些东西,那么financialColumn就会设置为该值

有什么我能做的吗


Tags: 文档testcomapia1site端点事情
1条回答
网友
1楼 · 发布于 2024-10-02 14:16:27

据我所知,它不会像你设置的那样工作。尽管您可以尝试以下方法:

@app.get("/company/{company_ticker}/model/", dependencies=[Depends(api_counter)])
@app.get("/company/{company_ticker}/model/{financialColumn}", dependencies=[Depends(api_counter)])
    async def myendpoint(
        company_ticker: str,
        financialColumn: Optional[str] = 'netincome'
        ):

        myFunction(company_ticker, financialColumn)

这样,如果有人转到"/company/{company_ticker}/model/""/company/{company_ticker}/model/blabla",函数myendpoint将处理请求

不确定它是否如您所愿工作,但目前我无法测试它。也许以后吧。让我知道

相关问题 更多 >

    热门问题