我用Python

flask查询数据库的操作

2018-05-17  本文已影响0人  裴general

摘要

在查询的同时,可以对获得的数据进行排序,抽选等操作

1.大于 __gt__/ 大于等于 __ge__

使用双下划线
这跟django中的操作是不同的,django是gt / gte

stus = Student.query.filter(Student.s_age.__gt__(16))  # 大于
stus = Student.query.filter(Student.s_age.__ge__(16)) # 大于等于

2.小余 __lt__ / 小余等于__le__

stus = Student.query.filter(Student.s_age.__lt__(16))
stus = Student.query.filter(Student.s_age.__le__(16))

3.也可以使用符号进行进行比较 > < <= >=

stus = Student.query.filter(Student.s_age < 16)

4. 是否属于 in_

stus = Student.query.filter(Student.s_age.in_([16, 22, 33, 44, 55, 8, 5]))

5.获取所有 all

sql = 'select * from Student;'
stus = db.session.execute(sql)
stus = Student.query.order_by('s_id')

6.降序排列获取所有 order_by

这里不需要使用all

stus = Student.query.order_by('s_id')

7. 按照id降序获取一定的数量 limit

stus = Student.query.order_by('-s_id').limit(1)

8.获取年龄最大的一个 first

stus = Student.query.order_by('-s_age').first()

9. 跳过数据获取 offset

# 跳过2个数据查询2个数据
stus = Student.query.order_by('-s_age').offset(2).limit(2)

10.get

只能获取一个,只能用于主键

stus = Student.query.get(24)

11.filter

获得指定的id的数据

stus = Student.query.filter(Student.s_id == 24)

12.and_ or_ not_ 多条件查询

stus = Student.query.filter(and_(Student.s_age == 18, Student.s_name == '黄蓉'))  # and关系
    stus = Student.query.filter(or_(Student.s_age == 18, Student.s_name == '裴敏'))  # 或者关系
    stus = Student.query.filter(not_(Student.s_age == 18))  # 非 条件

13.多条件查询

stus = Student.query.filter(Student.s_name == '黄蓉', Student.s_age == 18)
上一篇下一篇

猜你喜欢

热点阅读