zoukankan      html  css  js  c++  java
  • flask_SQLAlchemy 中常用的过滤和执行器

    常用的SQLAlchemy查询过滤器

    过滤器说明
    filter() 把过滤器添加到原查询上,返回一个新查询
    filter_by() 把等值过滤器添加到原查询上,返回一个新查询
    limit 使用指定的值限定原查询返回的结果
    offset() 偏移原查询返回的结果,返回一个新查询
    order_by() 根据指定条件对原查询结果进行排序,返回一个新查询
    group_by() 根据指定条件对原查询结果进行分组,返回一个新查询

    常用的SQLAlchemy查询执行器

    方法说明
    all() 以列表形式返回查询的所有结果
    first() 返回查询的第一个结果,如果未查到,返回None
    first_or_404() 返回查询的第一个结果,如果未查到,返回404
    get() 返回指定主键对应的行,如不存在,返回None
    get_or_404() 返回指定主键对应的行,如不存在,返回404
    count() 返回查询结果的数量
    paginate() 返回一个Paginate对象,它包含指定范围内的结果
     """
        查询所有用户数据
        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  获取总页数
    """
  • 相关阅读:
    二、制作BOM表格--物料表格--Bill of Materials
    一、生成网络表--create Netlist
    Python使用OpenCV实现简单的人脸检测
    Spring编程式和声明式事务实例讲解
    可能是最漂亮的Spring事务管理详解
    关于Java IO与NIO知识都在这里
    Java IO,硬骨头也能变软
    Java NIO之拥抱Path和Files
    Java NIO之Selector(选择器)
    Java NIO 之 Channel(通道)
  • 原文地址:https://www.cnblogs.com/ls1997/p/10899197.html
Copyright © 2011-2022 走看看