flask实现瀑布流分页

@course_data.route("/get_course",methods=['get'])
def course():
    # 获取前端的数据
    data = dict(request.args)
    # 指定分页根据什么排序
    order = request.args.get('order')
    # 查看是否上限
    online = int(request.args.get('online_status',1))
    # 查看分类
    cate = request.args.get('cate')
    # 标签
    tag = json.loads(request.args.get('tags','[]'))
    # 这个感觉是上面的那个data,前端输入每页限制和从第几页开始
    limit,offset = limit_framt(data)
    # 前端的数据
    serach = request.args.get('serach',None)

    if not order:
        # 将课程排序分页
        data = Course.query.order_by(text('-sort_num')).limit(4).all()
        return ret_route(200,orm2dict(data))
    # 处理分页,通过判断课程是否上限来筛选
    sql =  Course.query.filter_by(online_status=online)
    if cate:
        # 通过分类查出
        sql = sql.filter_by(cate=cate)

    if serach:
        # 最左匹配原则:联合索引
        sql =Course.query.filter(Course.name.like(f"%{serach}%"))
        return ret_route(data=orm2dict(sql))

    if not order:
        data = Course.query.order_by(text('-sort_num')).limit(4).all()
        return ret_route(data=orm2dict(data))

    if tag:
        sql = sql.filter(course_tag.c.tag_id.in_(tag))
    data = sql.order_by(text(order)).limit(limit).offset(offset * limit)
    # join表,两个表连接,筛选出来数据排序
    # data = sql.join(course_tag,course_tag.c.course_id == Course.id)\
    #     .filter().order_by(text(order)).limit(limit).offset(
    #     offset * limit).all()
    return ret_route(200,data=orm2dict(data))

  前端要传入用户想看的第几页数据,并且以什么来进行排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值