__init__.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  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. from dms.services.document_converter import create_converter
  14. def init_dms(app: Flask) -> None:
  15. """初始化独立DMS基础设施并注册 ``/api/v1`` Blueprint。"""
  16. app.config.from_mapping(load_dms_config())
  17. app.extensions["dms_ui_dictionaries"] = load_ui_dictionary_config(
  18. app.config["DMS_UI_DICTIONARY_CONFIG_PATH"]
  19. )
  20. app.extensions["dms_document_converter"] = create_converter(app.config)
  21. db.init_app(app)
  22. # 导入模型以确保SQLAlchemy metadata完整;不触发数据库连接。
  23. import dms.models # noqa: F401
  24. ensure_storage_directories(app.config["DMS_STORAGE_ROOT"])
  25. app.register_blueprint(api_v1)
  26. register_dms_routing_error_handlers(app)
  27. register_dms_response_headers(app)
  28. __all__ = ["init_dms"]