【发布时间】: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。有人有想法吗?
【问题讨论】:
我想使用 FastAPI 创建一个 API,该 API 从用户获取 url 并仅将 url 作为参数。例如,localhost:8000/tansu?url=www.google.com 是我的 url,我只想要 'url=www.google.com' 部分。在 fastAPI 教程中,我可以从 url 获取参数,但它们是特定的 url,我该如何处理来自用户的随机 url。有人有想法吗?
【问题讨论】:
可以使用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}
【讨论】:
可以使用查询参数
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"}
【讨论】:
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}
【讨论】: