zoukankan      html  css  js  c++  java
  • django之分页过滤

    Django提供了分页的支持

    实例化Paginator 对象:

    参考代码:

    # 增加对分页的支持
    from django.core.paginator import Paginator, EmptyPage
    
    def listmedicine(request):
        try:
            # 返回一个 QuerySet 对象 ,包含所有的表记录
            qs = Medicine.objects.values()
    
            # 要获取的第几页
            pagenum = request.params['pagenum']
    
            # 每页要显示多少条记录
            pagesize = request.params['pagesize']
    
            # 返回一个 QuerySet 对象 ,包含所有的表记录
            qs = Medicine.objects.values()
    
            # 使用分页对象,设定每页多少条记录
            pgnt = Paginator(qs, pagesize)
    
            # 从数据库中读取数据,指定读取其中第几页
            page = pgnt.page(pagenum)
    
            # 将 QuerySet 对象 转化为 list 类型
            retlist = list(page)
             
            # total指定了 一共有多少数据
            return JsonResponse({'ret': 0, 'retlist': retlist,'total': pgnt.count})
    
        except EmptyPage:
            return JsonResponse({'ret': 0, 'retlist': [], 'total': 0})
    
        except:
            return JsonResponse({'ret': 2,  'msg': f'未知错误
    {traceback.format_exc()}'})

    过滤查询:

    可以使用django 内置的Q函数

    栗子:

    qs.filter( Q(name__contains='乳酸') & Q(name__contains='注射液'))

    筛选出药品名包含乳酸和注射液的药品

    相当于mysql

    like %乳酸% and %注射液%

  • 相关阅读:
    springMvc
    计算机网络
    Mybatis 总结
    Spring 面试总结
    Java IO 流
    自定义类加载器
    缓存一致性协议
    dfs、bfs序
    7.26
    Trick
  • 原文地址:https://www.cnblogs.com/Neotester/p/12970729.html
Copyright © 2011-2022 走看看