from . import db from datetime import datetime class Model(db.Model): __tablename__ = 'Models' ModelID = db.Column(db.Integer, primary_key=True) ModelName = db.Column(db.Text, nullable=False) ModelType = db.Column(db.Text, nullable=False) CreatedAt = db.Column(db.TIMESTAMP, default=db.func.current_timestamp()) Description = db.Column(db.Text) class ModelParameters(db.Model): __tablename__ = 'ModelParameters' # 指定表名 ParamID = db.Column(db.Integer, primary_key=True, autoincrement=True) # 主键 ModelID = db.Column(db.Integer, db.ForeignKey('Models.ModelID'), nullable=False) # 外键,指向 Models 表的 ModelID ParamName = db.Column(db.Text, nullable=False) # 参数名 ParamValue = db.Column(db.Text, nullable=False) # 参数值 # 定义反向关系 model = db.relationship('Model', backref=db.backref('parameters', lazy=True)) class Dataset(db.Model): __tablename__ = 'Datasets' DatasetID = db.Column(db.Integer, primary_key=True) # 数据集ID DatasetName = db.Column(db.String(255), nullable=False) # 数据集名称 DatasetDescription = db.Column(db.Text, nullable=True) # 数据集描述 (可选) UploadedAt = db.Column(db.TIMESTAMP, default=datetime.utcnow) # 上传时间 RowCount = db.Column(db.Integer, nullable=False) # 数据集行数(条数) Status = db.Column(db.String(50), default='pending') # 数据集状态 (pending, processed) DatasetType = db.Column(db.String(50), nullable=False) # 数据集类型 (反酸模型训练, 降酸模型训练等) def __repr__(self): return f'' def to_dict(self): return { 'DatasetID': self.DatasetID, 'DatasetName': self.DatasetName, 'DatasetDescription': self.DatasetDescription, 'UploadedAt': self.UploadedAt.strftime('%Y-%m-%d %H:%M:%S'), 'RowCount': self.RowCount, 'Status': self.Status, 'DatasetType': self.DatasetType }