fixbug: #1
This commit is contained in:
parent
b5bf2c21b1
commit
60d07a477a
@ -51,7 +51,12 @@ def get_system_info():
|
|||||||
|
|
||||||
|
|
||||||
def load_routers(
|
def load_routers(
|
||||||
app, package_path: str = "router", router_name: str = "router", is_init=False
|
app,
|
||||||
|
package_path: str = "router",
|
||||||
|
router_name: str = "router",
|
||||||
|
is_init=False,
|
||||||
|
no_depends="common",
|
||||||
|
depends: list = None,
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
自动注册路由
|
自动注册路由
|
||||||
@ -59,6 +64,8 @@ def load_routers(
|
|||||||
:param package_path: 路由包所在路径,默认相对路径router包
|
:param package_path: 路由包所在路径,默认相对路径router包
|
||||||
:param router_name: APIRouter实例名称,需所有实例统一,默认router
|
:param router_name: APIRouter实例名称,需所有实例统一,默认router
|
||||||
:param is_init: 是否在包中的__init__.py中导入了所有APIRouter实例,默认否
|
:param is_init: 是否在包中的__init__.py中导入了所有APIRouter实例,默认否
|
||||||
|
:param no_depends: 不需要依赖注入的模块(py文件)名,默认common
|
||||||
|
:param depends: 依赖注入列表 默认为None
|
||||||
:return: 默认None
|
:return: 默认None
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -66,9 +73,15 @@ def load_routers(
|
|||||||
"""注册路由,module_obj: 模块对象"""
|
"""注册路由,module_obj: 模块对象"""
|
||||||
if hasattr(module_obj, router_name):
|
if hasattr(module_obj, router_name):
|
||||||
router_obj = getattr(module_obj, router_name)
|
router_obj = getattr(module_obj, router_name)
|
||||||
app.include_router(router_obj)
|
if no_depends in module_obj.__name__:
|
||||||
|
kwargs = dict(router=router_obj)
|
||||||
|
else:
|
||||||
|
kwargs = dict(router=router_obj, dependencies=depends)
|
||||||
|
app.include_router(**kwargs)
|
||||||
|
|
||||||
logger.info("开始扫描路由。")
|
logger.info("开始扫描路由。")
|
||||||
|
if depends is None:
|
||||||
|
depends = []
|
||||||
if is_init:
|
if is_init:
|
||||||
# 1. init 导入了其他自文件包时
|
# 1. init 导入了其他自文件包时
|
||||||
for _, module in inspect.getmembers(
|
for _, module in inspect.getmembers(
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
from fastapi import FastAPI
|
from fastapi import Depends, FastAPI
|
||||||
|
|
||||||
from core.events import close_orm, init_orm
|
from core.events import close_orm, init_orm
|
||||||
from core.exceptions import exception_handlers
|
from core.exceptions import exception_handlers
|
||||||
from core.log import logger
|
|
||||||
from core.middleware import middlewares
|
from core.middleware import middlewares
|
||||||
|
from core.security import check_permissions
|
||||||
from core.utils import load_routers
|
from core.utils import load_routers
|
||||||
|
|
||||||
app = FastAPI(
|
app = FastAPI(
|
||||||
@ -13,7 +13,9 @@ app = FastAPI(
|
|||||||
exception_handlers=exception_handlers,
|
exception_handlers=exception_handlers,
|
||||||
)
|
)
|
||||||
|
|
||||||
load_routers(app, "controller")
|
load_routers(
|
||||||
|
app, "controller", no_depends="common", depends=[Depends(check_permissions)]
|
||||||
|
)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import uvicorn
|
import uvicorn
|
||||||
|
Loading…
Reference in New Issue
Block a user