#python #flask-sqlalchemy
#python #flask-sqlalchemy
Вопрос:
Итак, я использую этот метод для нескольких проектов, но по какой-то причине я получаю сообщение об ошибке.
Задействованный код:
class Auth(db.Column):
__tablename__ = 'ezauth'
id = db.Column(db.Integer, primary_key=True, nullable=False)
username = db.Column(db.String, nullable=False)
email = db.Column(db.String, nullable=False)
password = db.Column(db.String, nullable=False)
confirmed = db.Column(db.Boolean, nullable=False, default=False)
def __repr__(self):
return f"Auth(username='{self.username}', email='{self.email}', password='{self.password}'"
и
@app.route('/api/login', methods=['POST'])
def apilogin():
if request.method == 'POST':
email = request.form.get('email')
password = request.form.get('password')
if email != None and password != None:
value1 = Auth.query.filter_by(email=email).first()
if value1 != None:
db_pass = value1.password
oid = value1.id
if sha256_crypt.verify(str(password), db_pass):
token = create_token()
tokendb = Token(token=token, oid=oid)
return Response('{"success": true, "message": "Logged in", "token": "' str(token) '"}', status=200, mimetype='application/json')
else:
return Response('{"success": false, "message": "Incorrect password"}', status=400, mimetype='application/json')
else:
return Response('{"success": false, "message": "Email not registered"}', status=400, mimetype='application/json')
else:
return Response('{"success": false, "message": "Wrong form parameters"}', status=400, mimetype='application/json')
Но Auth.query.all()
(или любой другой вариант Auth.query
) по какой-то причине не работает, он возвращает AttributeError: type object 'Auth' has no attribute 'query'
ошибку. Это работало в предыдущих проектах, но не в этом.
Комментарии:
1.
Auth.query.all()
В предоставленном вами коде его нет. Вы также делали это в своем кодеAuth.query.filter_by(email=email).first()
, вызывает ли это ошибку.2. @Nerveless_child Я использовал
Auth.query.all()
в качестве примера, речь идет об атрибуте «query», а не о чем-либо другом (напримерfilter_by()
, илиfirst()
вместоall()
).3. Вы уверены
Auth
, что он предназначен для подклассаdb.Column
вместоdb.Model
?4. Я считаю, что это причина вашей ошибки.
5. @Nerveless_child черт, думаю, я просто тупой. Спасибо, что заметили!