python – SQLAlchemy查询返回无
发布时间:2020-12-20 13:16:54 所属栏目:Python 来源:网络整理
导读:我在我的ubuntu 16 16上有一个使用SQLAlchemy和 MySQL-server的Web应用程序. Nginx uwsgi. 在创建引擎的同时,我放了 echo=True 获取查询的跟踪.我有注册用户的问题,每次在flask登录时调用user_loader,我执行: dbsession.query(User).filter_by(id=user_id).
我在我的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() 会成功的. 谢谢 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |