extension.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # -*- coding: utf-8 -*-
  2. # @Author : YY
  3. from .registry import RuoYiModuleRegistry
  4. from .config import RuoYiConfigLoader
  5. from .log import RuoYiLog
  6. '''
  7. FlaskRuoYi 是用来模块化基于flask应用的目录结构
  8. '''
  9. class FlaskRuoYi(object):
  10. def __init__(self,app=None,proot=None):
  11. if app is not None:
  12. if proot is None:
  13. proot = app.root_path
  14. self.init_app(app,proot)
  15. def init_app(self,app,proot=None):
  16. """
  17. 初始化插件
  18. Args:
  19. app: Flask应用实例
  20. proot: 项目根目录
  21. """
  22. if proot is None:
  23. proot = app.root_path
  24. self.proot = proot
  25. app.extensions['flaskruoyi'] = self
  26. config_loader = RuoYiConfigLoader(app.root_path)
  27. config_loader.set_app(app)
  28. module_reg = RuoYiModuleRegistry(app,proot)
  29. module_reg.register_modules()
  30. log_handler = RuoYiLog.generate_handler_from_config(config_loader.cache)
  31. if log_handler:
  32. app.logger.addHandler(log_handler)
  33. __all__ = ["FlaskRuoYi"]