__init__.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. """方案计划文档管理系统(DMS)后端模块。"""
  2. from __future__ import annotations
  3. from flask import Flask
  4. from dms.api.v1 import api_v1
  5. from dms.api.v1.blueprint import (
  6. register_dms_response_headers,
  7. register_dms_routing_error_handlers,
  8. )
  9. from dms.config import load_dms_config
  10. from dms.extensions import db
  11. from dms.services.ui_dictionary_service import load_ui_dictionary_config
  12. from dms.storage.paths import ensure_storage_directories
  13. def init_dms(app: Flask) -> None:
  14. """初始化独立DMS基础设施并注册 ``/api/v1`` Blueprint。"""
  15. app.config.from_mapping(load_dms_config())
  16. app.extensions["dms_ui_dictionaries"] = load_ui_dictionary_config(
  17. app.config["DMS_UI_DICTIONARY_CONFIG_PATH"]
  18. )
  19. db.init_app(app)
  20. # 导入模型以确保SQLAlchemy metadata完整;不触发数据库连接。
  21. import dms.models # noqa: F401
  22. ensure_storage_directories(app.config["DMS_STORAGE_ROOT"])
  23. app.register_blueprint(api_v1)
  24. register_dms_routing_error_handlers(app)
  25. register_dms_response_headers(app)
  26. __all__ = ["init_dms"]