V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hosinokamui
V2EX  ›  Flask

小白求助, flask_sqlalchemy 条件查询的一个问题

  •  
  •   hosinokamui · 2020-01-07 12:52:35 +08:00 · 2887 次点击
    这是一个创建于 1767 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果条件为 None,怎样能返回所有的数据呢,现在是直接在 sql 里变成“where 字段 IS NULL”了
    5 条回复    2022-03-25 08:39:28 +08:00
    knightdf
        1
    knightdf  
       2020-01-07 13:17:10 +08:00
    ```python
    filters = []
    if xxx is not None:
    filters.append(Model.attr == xxx)
    .query.filter(*filters).xxxx
    ```
    hp66722667
        2
    hp66722667  
       2020-01-07 16:55:25 +08:00
    通过 if 判断一下字段,不就可以随便拼接 sql 语句了么
    6167
        3
    6167  
       2020-01-07 17:00:52 +08:00
    ```
    if not xxx:
    data = Xxx.query.all()
    ```
    SjwNo1
        4
    SjwNo1  
       2020-01-07 17:04:26 +08:00
    你都用 SQLAlchemy 了~~
    '''
    if cond is None:
    objs = Xxx.query.all()
    '''
    l4ever
        5
    l4ever  
       2022-03-25 08:39:28 +08:00
    ```
    filters = [OrderModel.date == date] if isinstance(date, str) else [OrderModel.date.in_(date)]
    filters += [OrderModel.type.in_(type)] if type else []
    filters += [OrderModel.successed == successed] if successed else []
    order_list = OrderModel.query.filter(*filters).all()
    order_name = [f.name for f in order_list]
    return list(set(order_name))


    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5168 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:32 · PVG 17:32 · LAX 01:32 · JFK 04:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.