Flask-Sqlalchemy看似"缓存"查询

时间:2014-07-20 20:05:51

标签: python mysql flask sqlalchemy flask-sqlalchemy

我正在为Flask写一个注册/登录脚本,我正在使用flask-sqlalchemy。要签约用户,我将他们的详细信息通过flask-sqlalchemy插入到db中,然后提交更改。但是,当他们尝试登录时,从db中获取其详细信息时,我收到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

1 个答案:

答案 0 :(得分:1)

我相信你的查询应该是:

pwhash = User.query.filter_by(User.username='username').first().password