【发布时间】:2021-06-19 03:46:49
【问题描述】:
在Flask 中,请求可用于调用路径中的任何函数,因此不必显式传递。
FastAPI 中有类似的东西吗?
基本上,我想在同一个应用程序中允许“真实”或“虚拟”请求,其中虚拟不会实际执行某些操作,只是发出它们(是的,我知道检查它堆栈不好,但我无法控制所有代码)。
假设我有
@app.post("/someurl")
def my_response():
func1()
def func1():
func2()
def func2():
# access some part of the request
即我不需要将请求作为参数一直传递到 func2。
在 Flask 中,我只是直接访问请求,但我不知道如何在 FastAPI 中进行。 例如,在 Flask 中我可以这样做
def func2():
x = request.my_variable
# do somethinh with x
这里的请求是特定 URL 调用的本地请求,因此如果 func2 有两个并发执行(使用任何 URL),它们将获得正确的请求。
【问题讨论】:
-
为了清晰起见,提供
flask代码可能会有所帮助。 -
您可以使用基于类的处理程序,例如在 django 中。(当然我们自己实现了它们)