extensions.py 734 B

123456789101112131415161718192021222324252627282930
  1. """Flask扩展实例。"""
  2. from __future__ import annotations
  3. from flask_sqlalchemy import SQLAlchemy
  4. from sqlalchemy import MetaData
  5. from sqlalchemy.orm import DeclarativeBase
  6. NAMING_CONVENTION = {
  7. "ix": "ix_%(table_name)s_%(column_0_N_name)s",
  8. "uq": "uq_%(table_name)s_%(column_0_N_name)s",
  9. "ck": "ck_%(table_name)s_%(constraint_name)s",
  10. "fk": "fk_%(table_name)s_%(column_0_N_name)s_%(referred_table_name)s",
  11. "pk": "pk_%(table_name)s",
  12. }
  13. class Base(DeclarativeBase):
  14. """带稳定约束命名规则的声明式基类。"""
  15. metadata = MetaData(naming_convention=NAMING_CONVENTION)
  16. db = SQLAlchemy(
  17. model_class=Base,
  18. session_options={"expire_on_commit": False},
  19. )
  20. __all__ = ["Base", "db"]