flask多条件查询的简单方式

想实现多个条件查询,但是又有空的情况,可以用*filter_list的方式来可选添加

# 这里按照优先级大小来进行判定
filter_list = []
# 如果什么条件都没有
if any([start_date, end_date, app_order_id, trade_no, is_handled, order_status]):
    # 如果查询有时间
    if start_date and end_date:
        start_date = datetime.strptime(start_date, "%Y-%m-%d")
        end_date += " 23:59:59"
        end_date = datetime.strptime(end_date, "%Y-%m-%d %H:%M:%S")
        filter_list.append(or_(and_(db.cast(CcbDanbian.pay_date, db.DATE) <= db.cast(end_date, db.DATE),
                                    db.cast(CcbDanbian.pay_date, db.DATE) >= db.cast(start_date, db.DATE)),
                               and_(db.cast(CcbDanbian.refund_date, db.DATE) <= db.cast(end_date, db.DATE),
                                    db.cast(CcbDanbian.refund_date, db.DATE) >= db.cast(start_date, db.DATE))
                               ))
    if app_order_id:
        filter_list.append(CcbDanbian.app_order == app_order_id)
    if trade_no:
        filter_list.append(CcbDanbian.bk_order == trade_no)
    if is_handled:
        filter_list.append(CcbDanbian.is_handle == is_handled)
    if order_status:
        filter_list.append(CcbDanbian.order_status == order_status)
ccb_danbian_exist_order = db.session.query(CcbDanbian).filter(
    *filter_list).order_by(
    CcbDanbian.id.asc()).all()

if not ccb_danbian_exist_order:
    db.session.close()
    return R.fail("查询失败,没有找到日期内的银行账单!")
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
MCU Flash是一种用于嵌入式系统的非易失性存储器,通常用于保存历史数据。它可以通过简单的数据库实现数据的持久化存储和读取。 首先,我们可以在MCU Flash中创建一个数据表来存储历史数据。每个数据表可以有多个字段,比如时间戳、传感器数据等等。通过定义合适的数据格式和存储结构,我们可以很容易地在MCU Flash中编写和读取数据。 当有新的历史数据到达时,我们可以将其写入MCU Flash中的数据表中。这可以通过将新数据添加到数据表的末尾来实现。如果数据表已满,我们可以使用循环缓冲区的方式,覆盖最旧的数据。同时,我们还可以记录数据表的大小、索引和其他必要的元数据,以便后续的读取和管理。 对于数据的读取,我们可以按照时间顺序或者其他指定的条件从MCU Flash中读取数据。通过解析数据表中的数据结构和元数据,我们可以轻松地按需读取历史数据。 为了提高数据的可靠性和防止数据丢失,我们可以使用一些技术来进行数据备份和错误检测。比如使用冗余校验码(如循环冗余校验码)进行数据完整性校验,或者使用数据备份和恢复机制来应对硬件故障。 总之,MCU Flash可以作为一个简单的数据库来保存历史数据。通过定义合适的数据结构和元数据,并采用适当的数据存储和读取方法,我们可以实现数据的持久化存储和读取,从而方便地处理历史数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值