我正在为 Flask 编写注册/登录脚本,我正在使用 flask-sqlalchemy。为了注册用户,我通过 flask-sqlalchemy 将他们的详细信息插入到数据库中,然后提交更改。但是,当他们尝试登录时,从数据库中获取他们的详细信息,我收到 NoneType 错误,表明我试图查找的条目不存在。
我正在使用 MySQL 5.5 和最新版本的 Flask 和 Flask-Sqlalchemy。
错误:
AttributeError: 'NoneType' object has no attribute 'password'
代码:
newuser = User(username='username', email='email', valid=1, password='hashpass', rkey=rkey, score=0, ip=uip)
db.session.add(newuser)
db.session.commit()
pwhash = User.query.filter_by(username='username').first().password
return str(pwhash)
模型
class User(db.Model):
__tablename__ = 'users'
uid = db.Column(db.Integer, primary_key=True, autoincrement=True)
username = db.Column(db.String(50))
password = db.Column(db.Text)
email = db.Column(db.String(120))
rkey = db.Column(db.String(50))
role = db.Column(db.String(20))
valid = db.Column(db.Boolean)
ip = db.Column(db.String(110))
lastip = db.Column(db.String(110))
score = db.Column(db.Integer)
def __repr__(self):
return '<User %r>' % self.username
最佳答案
我认为您的查询应该是:
pwhash = User.query.filter_by(User.username='username').first().password
关于python - Flask-Sqlalchemy 貌似 "caching"查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24854418/