我在文档中发现路由器是这样注册的:
app.include_router(router1)
app.include_router(router2)
Run Code Online (Sandbox Code Playgroud)
但如果我只是想包含一个路由器列表(比如如果我有 100 个路由器,我必须重复这 100 次),这似乎不必要地冗长?有没有办法将它们传递到列表或其他东西中?谢谢!
小智 5
routers您可以使用 for 循环来列出所需的路由器:
for router in router1, router2, router3:
account.include_router(router)
Run Code Online (Sandbox Code Playgroud)
但是,您仍然需要以某种方式创建一个包含所有路由器的列表。
如果您想在 for 循环之外存储序列,建议使用元组而不是列表,以简化数据结构:
routers = router1, router2, router3
for router in routers:
account.include_router(router)
Run Code Online (Sandbox Code Playgroud)
如果您有大量路由,则可以执行类似的操作,假设它们位于单个模块中,但您可以将其调整为多个模块:
def include_router_from_module(target, module):
module_attributes = vars(module)
for attribute in module_attributes.values():
if isinstance(attribute, fastapi.APIRouter):
target.include_router(attribute)
include_router_from_module(app, your_module)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
309 次 |
| 最近记录: |