python - SQLAlchemy中filter()和filter_by()有什么区别
怪我咯
怪我咯 2017-04-17 11:03:52
[Python讨论组]

有人能给我解释以下么,看不出又什么区别呢?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
ringa_lee

用法不同而已,filter 可以像写 sql 的 where 条件那样写 > < 等条件,但引用列名时,需要通过 类名.属性名 的方式。 filter_by 可以使用 python 的正常参数传递方法传递条件,指定列名时,不需要额外指定类名。,参数名对应名类中的属性名,但似乎不能使用 > < 等条件。

各有所长吧。

http://docs.sqlalchemy.org/en/rel_0_7...

天蓬老师

filter:

apply the given filtering criterion to a copy of this Query, using SQL expressions.
e.g.:
session.query(MyClass).filter(MyClass.name == 'some name')

filter_by:

apply the given filtering criterion to a copy of this Query, using keyword expressions.
e.g.:
session.query(MyClass).filter_by(name = 'some name')

高洛峰

感觉楼上的不是很对
filter指定列名的时候,可以不使用类名;filter_by也不是说任何时候都可以不指定类名
我平时使用的时候,两者区别主要就是当使用filter的时候条件之间是使用“==",fitler_by使用的是"="。
user1 = session.query(User).filter_by(id=1).first()
user1 = session.query(User).filter(id==1).first()

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号