from sqlalchemy import func from app.models import db from werkzeug.security import generate_password_hash, check_password_hash def isAvailable(account): #从数据库中查找第一个匹配 account 的 Passenger 记录。 Passenger.query.filter_by(account=account).first() #乘客实体类 class Passenger(db.Model): __tablename__ = 'passenger' #主键 id = db.Column(db.Integer, primary_key=True) #姓名 name = db.Column(db.String(120)) #账号 account = db.Column(db.String(120), unique=True, nullable=False, index=True) #密码 password_digest = db.Column(db.String(2000), nullable=False) #身份证号码 id_card_no = db.Column(db.String(120)) #手机号 mobile_no = db.Column(db.String(120)) #银行卡号 bank_card_no = db.Column(db.String(120)) #账号状态 state = db.Column(db.Integer, default=0) #成员类型 member_type = db.Column(db.Integer) #上次登录时间 last_login_time = db.Column(db.DateTime) #创建时间 created_at = db.Column(db.DateTime, default=func.now()) #更新时间 updated_at = db.Column(db.DateTime, default=func.now()) def check_password(self, password): return check_password_hash(self.password_digest, password) # 验证密码 #验证账号和密码 @classmethod def verifyPassenger(cls, account, password): passenger = cls.query.filter_by(account=account).first() if passenger and passenger.check_password(password): print(1) return passenger return None #注册成功,存储乘客信息,即添加操作 @classmethod def create(cls, data): passenger = cls( account=data.get('account'), password_digest=generate_password_hash(data.get('password')), name=data.get('name'), id_card_no=data.get('idCardNo'), mobile_no=data.get('mobileNo'), bank_card_no=data.get('bankCard'), ) db.session.add(passenger) db.session.commit() return passenger #根据乘客id删除数据,即删除操作 @classmethod def destroy(cls, passenger_id): passenger = cls.query.get(passenger_id) if passenger: db.session.delete(passenger) db.session.commit() return True return False