【问题标题】:Sqlalchemy filter querySqlalchemy 过滤器查询
【发布时间】:2015-01-15 00:19:00
【问题描述】:

您好,我正在尝试开发一个小 Flask 应用程序。

我有一个船类,它有我查询的船名和长度。

Boat.query.filter_by(numberofcabins=numberofcabins)

查询有效,我得到了我想要的。

但是

db.session.query(Boat).filter_by(length = length)

Boat.query.filter_by(length=length)

查询没有得到任何结果。

我不知道我的错误是什么。

【问题讨论】:

    标签: python-3.x flask sqlalchemy


    【解决方案1】:
    Boat.query.filter_by(length=length)
    

    需要在末尾附加一个.all()

    >>> type(Boatquery.filter_by(length=length))
    <class 'flask_sqlalchemy.BaseQuery'>
    >>> type(Boatquery.filter_by(length=length).all())
    <type 'list'>
    

    Documentation for .all
    Documentation for .filter_by

    【讨论】:

    • 谢谢 Celeo 我试过了
    • 您需要确保您的数据库中确实存在匹配的记录。使用适当的命令行客户端进入数据库并手动运行 SQL 查询。
    • 我检查了你说的 SELECT * FROM boats WHERE length=15;此查询找到了我要查找的内容
    • 如果您的本地 length 是浮点数,而模型字段是 int,则在调用 filter_by 之前尝试对 length 执行强制转换
    • 对不起,我发现我的错误是一个 !=None 问题,我将其更改为 !='' 现在它可以工作了。感谢 Ceeo 抽出宝贵时间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 2017-03-24
    • 2019-03-10
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多