Flask从数据库中查询数据的filter和filter_by()方法的区别

一、问题描述

Flasky查询数据的时候,会需要用到过滤器来根据一定的条件筛选。其中,有两个方法filter和filter_by看起来很像,那么它们的区别是什么呢?

二、对比

官方文档是这样写的:


Query.filter() - filter on SQL expressions.

Query.filter_by() - filter on keyword expressions.


也就是说,它们俩接受的参数类型不一样。

1. filter接受的参数是一个类似于SQL表达式的值

u=User.query.filter(User.username=='john').first()

注意:这里要遵循Python的语法,表示相等的比较操作符是==;而且,要显式地指出username是哪个模型类的字段。

既然参数是一个表达式,它能做的就更多。请看下面的例子:

#查询出了id值大于90的所有用户
users=User.query.filter(User.id>90).all()

 2.filter_by接受的参数是关键字参数

u=User.query.filter_by(username='jessica').first()

相较于filter的表达式参数,filter_by里的关键词参数写起来更加简洁,但是它不能用>或者<这样的比较操作符了。

 

 

如果这篇博文帮到了你,就请给我点个吧(#^.^#)

有疑问也欢迎留言~博主可nice啦,在线秒回ヾ(◍°∇°◍)ノ゙

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值