我正在爲Flask寫一個註冊/登錄腳本,而我正在使用flask-sqlalchemy。爲了簽署用戶,我通過flask-sqlalchemy將他們的詳細信息插入到數據庫中,然後提交更改。但是,當他們嘗試登錄時,從db中獲取它們的詳細信息時,我得到一個NoneType錯誤,表明我試圖找到的條目不存在。Flask-Sqlalchemy看似「緩存」查詢
我正在使用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
磨片你是否將這個用戶添加到數據庫?什麼是上下文?你可以做一個'print(db.query.all())'並查看數據庫是否對它做了什麼? – corvid
當運行打印(db.query.all()),我得到 '文件 「」,1號線,在 打印(db.query.all()) AttributeError的: 'SQLAlchemy的' 對象有沒有屬性' query''。我在應用程序的開頭設置了'db = SQLAlchemy()',並不確定這是否有所幫助。 –
Cydrobolt
errr對不起,我的意思是'User.query.all()' – corvid