美文网首页
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