"""管理员模型""" from datetime import datetime from app import db from werkzeug.security import generate_password_hash, check_password_hash class Admin(db.Model): """管理员账户表""" __tablename__ = 'admins' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(50), unique=True, nullable=False) password_hash = db.Column(db.String(255), nullable=False) email = db.Column(db.String(100), unique=True) is_active = db.Column(db.Boolean, default=True) last_login = db.Column(db.DateTime) created_at = db.Column(db.DateTime, default=datetime.utcnow) updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) def __repr__(self): return f'' def set_password(self, password): """设置密码""" self.password_hash = generate_password_hash(password) def check_password(self, password): """验证密码""" return check_password_hash(self.password_hash, password) def to_dict(self): """转换为字典(不包含密码)""" return { 'id': self.id, 'username': self.username, 'email': self.email, 'is_active': self.is_active, 'last_login': self.last_login.isoformat() if self.last_login else None, 'created_at': self.created_at.isoformat() if self.created_at else None }