Flask-SQlAlchemy查询生产和开发配置之间不一致

时间:2018-04-27 22:54:03

标签: python flask flask-sqlalchemy

因此,我正在运行Flask网络应用作为小型SQLite广告资源数据库的前端。我正在使用Flask-SQLAlchemy进行所有数据库交互。我有一个内置的搜索功能,因此您可以(例如)找到分配给Person X的所有硬件。或者,查找Project ABC中具有状态Available的所有硬件。搜索功能支持可选标准。

出于安全考虑,我不能在这里发布可执行代码,但这是我的搜索功能:

for system in db.session.query(System).filter(and_(System.assignee_id.like("%{}%".format(assignee_id)),
                                                           System.serial.like("%{}%".format(serial)),
                                                           System.user_id.like("%{}%".format(user_id)),
                                                           System.project_id.like("%{}%".format(project_id)),
                                                           System.status_id.like("%{}%".format(status_id)))):
        results.append(system)

奇怪的是,当我在开发配置中运行应用程序时,这非常有效。但是,在我的生产配置中,如果我尝试使用“受让人”或“用户”标准(两者都是电子邮件地址的字符串),我会得到不好的结果。它向我展示了一系列系统,其中一些系统拥有正确的受让人,但其中大多数都没有。生产和开发配置之间的唯一区别是SQLite数据库的文件路径和登录应用程序的身份验证机制。

为什么这会在两者之间产生不同的结果?它完全像在Dev配置中应该的那样工作。

更新

根据评论的建议进行一些额外的调试后,看起来问题出现在ProductionConfig的实际数据中。但是,当我在数据库浏览器中浏览.sqlite文件时,最初一切看起来都是正确的。这些随机受让人在哪里获得?

0 个答案:

没有答案