美文网首页
Flask-sqlalchemy查询

Flask-sqlalchemy查询

作者: gstorm | 来源:发表于2020-04-20 17:31 被阅读0次
 查询所有用户数据
User.query.all()

查询有多少个用户
User.query.count()

查询第1个用户
User.query.first()
User.query.get(1)   # 根据id查询

查询id为4的用户[3种方式]
User.query.get(4)
User.query.filter_by(id=4).all()   # 简单查询  使用关键字实参的形式来设置字段名
User.query.filter(User.id == 4).all()  # 复杂查询  使用恒等式等其他形式来设置条件

查询名字结尾字符为g的所有用户[开始 / 包含]
User.query.filter(User.name.endswith("g")).all()
User.query.filter(User.name.startswith("w")).all()
User.query.filter(User.name.contains("n")).all()
User.query.filter(User.name.like("%n%g")).all()  模糊查询

查询名字和邮箱都以li开头的所有用户[2种方式]
User.query.filter(User.name.startswith("li"), User.email.startswith("li")).all()

from sqlalchemy import and_
User.query.filter(and_(User.name.startswith("li"), User.email.startswith("li"))).all()

查询age是25 或者 `email`以`itheima.com`结尾的所有用户
from sqlalchemy import or_
User.query.filter(or_(User.age == 25, User.email.endswith("itheima.com"))).all()

查询名字不等于wang的所有用户[2种方式]
from sqlalchemy import not_
User.query.filter(not_(User.name == "wang")).all()
User.query.filter(User.name != "wang").all()

查询id为[1, 3, 5, 7, 9]的用户
User.query.filter(User.id.in_([1, 3, 5, 7, 9])).all()

所有用户先按年龄从小到大, 再按id从大到小排序, 取前5个
User.query.order_by(User.age, User.id.desc()).limit(5).all()

分页查询, 每页3个, 查询第2页的数据
pn = User.query.paginate(2, 3)
pn.items  获取该页的数据     pn.page   获取当前的页码     pn.pages  获取总页数

动态条件查询
filters = {User.age >=15, User.name!=''} 可以在filters中添加或减少条件
User.query.filter(*filters).all()

参考:https://blog.csdn.net/xiao_bao_an/article/details/84667705

相关文章

网友评论

      本文标题:Flask-sqlalchemy查询

      本文链接:https://www.haomeiwen.com/subject/thfjihtx.html