python – SQLAlchemy查询返回无
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – SQLAlchemy查询返回无,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1453字,纯文字阅读大概需要3分钟。
内容图文
我在我的ubuntu 16& 16上有一个使用SQLAlchemy和MySQL-server的Web应用程序. Nginx uwsgi.
在创建引擎的同时,我放了
echo=True
获取查询的跟踪.我有注册用户的问题,每次在flask登录时调用user_loader,我执行:
dbsession.query(User).filter_by(id=user_id).first()
我得到的结果是:
INFO sqlalchemy.engine.base.Engine SELECT user.id AS user_id, user.name AS user_name, user.email AS user_email, user.pass$
Mar 29 23:48:56 ubuntu-512mb-sgp1-01 uwsgi[26160]: FROM user
Mar 29 23:48:56 ubuntu-512mb-sgp1-01 uwsgi[26160]: WHERE user.id = %s
Mar 29 23:48:56 ubuntu-512mb-sgp1-01 uwsgi[26160]: LIMIT %s
Mar 29 23:48:56 ubuntu-512mb-sgp1-01 uwsgi[26160]: 2017-03-29 23:48:56,517 INFO sqlalchemy.engine.base.Engine ('61', 1)
结果是无.但是,在上面的例子中,使用user_id = 61,我可以在ubuntu中的mysql shell上找到用户获取用户ID 61.
当我刷新页面几次,结果就会出来.
一旦用户完成注册,他们将被重定向到登录页面,在完成表单后,它会显示错误“请注册”,如果现在使用此查询找到用户,则会触发该错误:
dbsession.query(User).filter_by(id=user_id).first()
在注册时我的代码是:
user = User(name=name, email=email, password=password)
dbsession.add(user)
dbsession.commit()
return redirect(url_for('login'))
检查已完成,以确保名称,电子邮件密码有效.
谢谢
解决方法:
解决了这个问题.
感谢@iljaEverila.
基本上我需要确保来自SQLAlchemy的dbsession已经持久保存数据并且没有待处理的事务.因此,一旦用户注册并调用user_loader,我只需要调用:
dbsession.commit()
然后调用这个:
dbsession.query(User).filter_by(id=user_id).first()
会成功的.
谢谢
内容总结
以上是互联网集市为您收集整理的python – SQLAlchemy查询返回无全部内容,希望文章能够帮你解决python – SQLAlchemy查询返回无所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。