Я создаю логин используя Flask-Bcrypt, Python и SQLAlchemy. Я успешно могу зарегистрировать новых администраторов, и это отлично создает хэш. Тем не менее, когда я пытаюсь войти в систему администратора и создать новый сеанс для указанного администратора, я получаю эту ошибку; Ошибка типа: объект «Администратор» не является подписным. Я понятия не имею, как решить эту проблему, занимался этим более суток.
Кроме того, я никогда не делал этого прежде, чем использовать 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")