使用 FastAPI 获取 URL 参数

Posted

技术标签:

【中文标题】使用 FastAPI 获取 URL 参数【英文标题】:Getting URL parameters by using FastAPI 【发布时间】:2022-01-07 04:07:50 【问题描述】:

我想使用 FastAPI 创建一个 API,该 API 从用户获取 url 并仅将 url 作为参数。例如,localhost:8000/tansu?url=www.google.com 是我的 url,我只想要 'url=www.google.com' 部分。在 fastAPI 教程中,我可以从 url 获取参数,但它们是特定的 url,我该如何处理来自用户的随机 url。有人有想法吗?

【问题讨论】:

【参考方案1】:

可以使用request参数,然后从那里取很多东西,包括所有的url参数:

from fastapi import FastAPI
from fastapi import Request

app = FastAPI()


@app.get("/tansu")
async def tansu(request : Request):
  url = request.query_params.get('url', None)
  return 'url' : url

【讨论】:

【参考方案2】:

可以使用查询参数

main.py

from typing import Optional

from fastapi import FastAPI

app = FastAPI()


@app.get("/tansu")
async def get_url(
    url: str = None
):
    return "url": url

现在,运行开发服务器并访问 http://localhost:8000/tansu?url=www.google.com

您将看到以下响应。

"url": "www.google.com"

参考:https://fastapi.tiangolo.com/tutorial/query-params/

【讨论】:

【参考方案3】:
use fastapi "query" parameters. 

更多信息请访问:doc

from typing import Optional

from fastapi import FastAPI

app = FastAPI()


@app.get("/user")
async def read_item(user: str, url: Optional[str] = None):
    if url:
        return "user": user, "url": url
    return "user": user

【讨论】:

以上是关于使用 FastAPI 获取 URL 参数的主要内容,如果未能解决你的问题,请参考以下文章

API接口开发其实特简单,Python FastApi Web 框架教程来了

FastAPI上手指南(三):路径参数和查询参数

17.FastAPI 表单数据

FastAPI- get 请求

FastAPI学习-3.get 请求 query params 查询参数

如何在fastapi中获取多个表单输入字段作为字典?