class DocumentModifiedLog(BaseModel): # 文档document.id document_id = db.Column(db.INTEGER, nullable=False) # 修改人User.id modified_by = db.Column(db.INTEGER, nullable=False) # 原始文档内容 original_content = db.Column(db.TEXT) # 修改后文档内容 modified_content = db.Column(db.TEXT)
class Project(BaseModel): # 项目名称 name = db.Column(db.String(30), nullable=False, unique=True) # 创建人User.id created_by = db.Column(db.INTEGER, nullable=False) # 项目说明 description = db.Column(db.TEXT) # 项目说明的文档类型 des_doc_type = db.Column(db.Enum(Document.DocType)) # 项目logo logo = db.Column(db.String(200))
class SysSetting(BaseModel): class Section(IntEnum): SYSTEM = 0, DOCUMENT = 0, USER = 0, section = db.Column(db.Enum(Section), nullable=False) name = db.Column(db.String(100), nullable=False) value = db.Column(db.TEXT) desc = db.Column(db.String(200))
class BaseModel(AbstractConcreteBase, db.Model): """ 为所有Model提供公用方法 """ id = db.Column(db.INTEGER, primary_key=True, autoincrement=True) created = db.Column(db.DATETIME, nullable=False) modified = db.Column(db.DATETIME, nullable=False) is_deleted = db.Column(db.BOOLEAN, nullable=False, default=True) deleted = db.Column(db.DATETIME) deleted_by = db.Column(db.String(50)) @declared_attr def __tablename__(cls): hunp_str = cls.__name__ p = re.compile(r'([a-z]|\d)([A-Z])') # 这里第二个参数使用了正则分组的后向引用 tablename = re.sub(p, r'\1_\2', hunp_str).lower() return "dt_" + tablename
class Document(BaseModel): class DocType(IntEnum): PLAIN_TEXT = 0, HTML = 1, MARKDOWN = 2 # 文档标题 title = db.Column(db.String(100), nullable=False) # 文档内容 content = db.Column(db.TEXT) # 文档类型 doc_type = db.Column(db.Enum(DocType)) # 创建人User.id created_by = db.Column(db.INTEGER, nullable=False)
class ProjectDocuments(BaseModel): # 项目Project.id project_id = db.Column(db.INTEGER, nullable=False) # 文档document.id document_id = db.Column(db.INTEGER, nullable=False)
class ProjectUsers(BaseModel): # 项目Project.id project_id = db.Column(db.INTEGER, nullable=False) # 用户User.id user_id = db.Column(db.INTEGER, nullable=False)
def init_db(): DocTrainDB.create_all(app=DocTrainApp)
class User(BaseModel, UserMixin): user_name = db.Column(db.String(64), nullable=False, unique=True) password = db.Column(db.String(64)) email = db.Column(db.String(64)) mobile = db.Column(db.String(16), nullable=False, unique=True) nickname = db.Column(db.String(64)) avatar = db.Column(db.String(200))
class UserLoginLog(BaseModel): user_id = db.Column(db.INTEGER, nullable=False) log_msg = db.Column(db.String(100)) ip = db.Column(db.String(16))