初始化提交,包含完整的邮件系统代码
This commit is contained in:
46
app/models/__init__.py
Normal file
46
app/models/__init__.py
Normal file
@@ -0,0 +1,46 @@
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from sqlalchemy.orm import sessionmaker, scoped_session
|
||||
import os
|
||||
import sys
|
||||
|
||||
# 修改相对导入为绝对导入
|
||||
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
|
||||
from config import active_config
|
||||
|
||||
# 创建数据库引擎
|
||||
engine = create_engine(active_config.SQLALCHEMY_DATABASE_URI)
|
||||
|
||||
# 创建会话工厂
|
||||
session_factory = sessionmaker(bind=engine)
|
||||
Session = scoped_session(session_factory)
|
||||
|
||||
# 创建模型基类
|
||||
Base = declarative_base()
|
||||
|
||||
# 获取数据库会话
|
||||
def get_session():
|
||||
"""获取数据库会话"""
|
||||
return Session()
|
||||
|
||||
# 初始化数据库
|
||||
def init_db():
|
||||
"""初始化数据库,创建所有表"""
|
||||
# 导入所有模型以确保它们被注册
|
||||
from .domain import Domain
|
||||
from .mailbox import Mailbox
|
||||
from .email import Email
|
||||
from .attachment import Attachment
|
||||
|
||||
# 创建表
|
||||
Base.metadata.create_all(engine)
|
||||
|
||||
return get_session()
|
||||
|
||||
# 导出模型类
|
||||
from .domain import Domain
|
||||
from .mailbox import Mailbox
|
||||
from .email import Email
|
||||
from .attachment import Attachment
|
||||
|
||||
__all__ = ['Base', 'get_session', 'init_db', 'Domain', 'Mailbox', 'Email', 'Attachment']
|
||||
Reference in New Issue
Block a user