我有一个用 FastAPI 编写的简单路线,如下所示,
from fastapi import FastAPI
app = FastAPI()
@app.get("/foo/bar/{rand_int}/foo-bar/")
async def main(rand_int: int):
return {"path": f"https://some-domain.com/foo/bar/{rand_int}/foo-bar/?somethig=foo"}
Run Code Online (Sandbox Code Playgroud)
我怎样才能“以编程方式”获取当前路径,
some-domain.com
)/foo/bar/{rand_int}/foo-bar/
)?somethig=foo
)JPG*_*JPG 37
我们可以使用Request.url
-(starlette doc) API 来获取各种 URL 属性。要获取绝对URL,我们需要使用Request.url._url
私有API(或str(Request.url)
),如下
from fastapi import FastAPI, Request
app = FastAPI()
@app.get("/foo/bar/{rand_int}/foo-bar/")
async def main(rand_int: int, request: Request):
return {"raw_url": str(request.url)}
Run Code Online (Sandbox Code Playgroud)