出现错误; TypeError:“管理员”对象不可下标

时间:2019-07-11 17:10:41

标签: python flask-sqlalchemy bcrypt

我正在使用Flask-Bcrypt,Python和SQLAlchemy创建登录名。我能够成功注册新的管理员,并且它创建的哈希值很好。但是,当我尝试登录管理员并为该管理员创建新会话时,出现此错误; TypeError:“管理员”对象不可下标。我不知道如何解决这个问题,已经花了整整一天的时间。

此外,在使用SQLAlchemy之前,我从未做过此事。我只使用MySQL完成此操作。因此,我觉得我可能使用了错误的语法或其他无法使用的语法。

错误来自hashed_password = admin[0]['password']

这是代码,我也包括了模型。

class Admin(db.Model):
    __tablename__="admins"
    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(255))
    last_name = db.Column(db.String(255))
    username = db.Column(db.String(255))
    password = db.Column(db.String(255))
    created_at = db.Column(db.DateTime, server_default=func.now())
    updated_at = db.Column(db.DateTime, server_default=func.now(), onupdate=func.now())

  admin = Admin.query.filter_by(username=request.form['username']).all()
    if admin:
        hashed_password = admin[0]['password']
        if bcrypt.check_password_hash(hashed_password, request.form['password']):
            session['admin_id'] = admin.id
            return redirect ("/admin_home") 

0 个答案:

没有答案