【发布时间】:2020-06-19 03:35:29
【问题描述】:
我正在使用FastAPI 开发 Python Web API。
目前它是一个非常小的应用程序,但在接下来的几个月里,我预计它会有数百个 routes 和 services。
这是我拥有的route 的示例:
my_service_1 = MyService1()
my_service_2 = MyService2()
@router.get("/route-1")
def route_1():
# Do something with the services
@router.get("/route-2")
def route_2():
# Do something with the services
@router.get("/route-3")
def route_3():
# Do something with the services
为方便起见,我将服务声明留在了文件顶部,因此文件中的所有路由都可以轻松使用它们。
我的问题是,像这样的数百个文件,一旦应用程序启动,所有路由都将被注册,因此所有服务都将被实例化。这样做是个坏主意吗?考虑到所有服务现在都加载到内存中,是否会导致内存使用过多?
这样的东西在性能/内存使用方面会更好吗?
@router.get("/route-1")
def route_1():
my_service_1 = MyService1()
my_service_2 = MyService2()
# Do something with the services
@router.get("/route-2")
def route_2():
my_service_1 = MyService1()
my_service_2 = MyService2()
# Do something with the services
@router.get("/route-3")
def route_3():
my_service_1 = MyService1()
my_service_2 = MyService2()
# Do something with the services
如果这不是 pythonic 的做事方式,请原谅我,我来自 C# 背景。
【问题讨论】:
标签: python python-3.x fastapi