为什么80%的码农都做不了架构师?>>>   

在学习Django中,练手做了个项目,在实际编程当中发现了N多个坑,现在记录下心得体会,方便以后查询,本人Models只使用了一张表,前端HTML如下图所示,

多条件查询可以使用的技术:

  • Q查询
  • 查询条件动态存档放到1个字典里面,前台根据字典传值。
    如 status = { 'qq'  : '123456'  , 'startdate' :' 2017-02-04 ', ' typeid ' : ' 1 ' }

条件存放到字典时需要注意的是

1、只有选中状态下,才获取查询的条件

2、页面刷新时(GET请求),即使你什么都不做,文本框的值为空字符串,所以要判断获取状态是否为真

get_qq=request.GET.get('search')   #输入文本框的 name = 'search'
if get_qq:                  #当输入的QQ为真时,注意,刷新时,什么都不输入为空字符串status['qq']=get_qq     #==>>status={'qq':get_qq}

3、如果查询条件为空时( status={}) ,模型类.objects.filter(status) 相当于xxx.objects.all()

所以第一次打开页面,或什么条件都没选择时,要设置获取的数据对象集为空

if len(status)==0: #如果字典为空,不含有任何过滤条件,即条件都没选择data = []      #设置数据为空
else:data =models.Order.objects.filter(**status)  # 字典 为空字符串时  status={}#len{status}=0#字典为None 时     status={None}#len(status)=1  python 3.x     

这里注意下  len( { } )       len( { None } )  len(None)(报错)   的区别

对查询的结果进行分页时,需要注意的是:

1、每页获取的对象 为,当前页的对象集 Paginator.page(number).object_list  
      而不是总数据的对象集Paginator.object_list

2、分页的页码,是总数据的页码 Paginator.page_range

3、因为分页查询,所以form 的method 设置为 GET ,每页的查询状态 在Url 上有参数
       如 www.xxx.com/ ?name=lee & age=18

  注意:1、每页的Url 需要传递 查询条件参数  ?name=lee & key=value....

            2、GET 请求只能获取? 后面的数据 如果url 网址设置 www.xxx.com/1(页面)?key=value

            页码需要从浏览器获取 ,需要配置视图函数和 urls.py  url(r'^list/(\d*)', list)

VIEWS.PYdef list(request,page):#....#....else:data =models.Order.objects.filter(**status)       if data:p=Paginator(data,5)   #分页 pre_page=1 每页显示1条数据ret['p']=ptry:#从浏览器中获取当前页码,默认为1page=int(page)page_object_list=p.page(page) #当前页面的对象 except:#如果出错,如用户输入,ddd,返回第1页page=1page_object_list=p.page(1)ret['page_object_list']=page_object_list

转载于:https://my.oschina.net/esdn/blog/836101

DJango 多条件查询结果分页相关推荐

  1. SSM整合 mybatis多条件查询与分页

    多条件查询与分页: 通过页面的houseName.floorage获取值传到前端视图(HouseSearchVO)实体类中的houseName,floorage建立houseSearchVO对象. 通 ...

  2. java mongodb 多表关联查询,多条件查询,分页,排序

    前言: 由于最近项目赶,版本迭代快,不知道大BOSS从哪里听别人说MongoDB用来做关系型数据库好,而且速度快,性能高:听到这话的我,立马就反驳了回去:"MongoDB不支持事物" ...

  3. 谷粒学院-分页查询、条件查询带分页、添加、修改

    讲师分页查询 注意:也可以使用MyBatis分页插件PageHelper,这里不用 https://blog.csdn.net/ZHOU_VIP/article/details/121773800 1 ...

  4. mybatis-puls条件查询、分页功能

    mybatis-puls条件查询.分页功能 MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 My ...

  5. oracle存储过程 多条件,Oracle多条件查询实际分页存储过程实操

    以下的文章主要是介绍Oracle多条件查询分页存储过程,以下就是Oracle多条件查询分页存储过程具体方案的描述,希望在你今后的学习中会有所帮助.将业务逻辑放到Oracle中使得后台代码很精简,Ora ...

  6. mysql 条件查询分页_百万数据下mysql条件查询及分页查询的注意事项

    接上一节<百万数据mysql分页问题>,我们加上查询条件:select id from news where cate = 1 order by id desc limit 500000 ...

  7. vue 前端项目带条件查询的分页列表开发实战

    一 添加医院设置路由 修改文件 E:\vue-sdgt\src\router\index.js {path: '/hospital',component: Layout,redirect: '/hos ...

  8. Mysql数据库常用查询方法及演示(where条件查询、分页、排序等)

    Mysql数据库常用查询方法及演示 where条件查询的介绍 使用where条件查询可以对表中的数据进行筛选,条件成立的记录会出现在结果集中. where语句支持的运算符: 比较运算符 逻辑运算符 模 ...

  9. Entity Framework4.1实现动态多条件查询、分页和排序

    EF通用的分页实现: /// <summary> /// 根据条件分页获得记录 /// </summary> /// <param name="where&qu ...

最新文章

  1. 3d max 安装和导入rvt模型失败
  2. JS正则表达式校验金额
  3. 2017-2018-1 20155222 201552228 实验五 通讯协议设计
  4. XSS跨站脚本攻击在Java开发中防范的方法
  5. 软考解析:2017年上半年下午试卷
  6. 好记性不如烂笔头,记录几个常用的Linux操作
  7. java 创建文件夹的方法_java中创建文件夹的方法
  8. QQ网页链接打开本地QQ.exe原理
  9. 马尔科夫决策过程(MDP) : GridWord(DP)
  10. 基于matlab的双闭环直流调速系统,基于MATLAB的双闭环直流调速系统建模与仿真.PDF...
  11. (转帖)ConcurrentHashMap实现原理(3)
  12. Whois查询结果中不同域名状态的含义
  13. 使用学信网认证,免费获取JetBrains学习产品
  14. MySQL必知必会的知识点
  15. 无论被多少人喷,《王牌战士》这次真的火了吗?
  16. 控制系统分析常用命令
  17. hackthebox(HTB) Ambassdor !
  18. Raphael绘制流程图箭头的方法
  19. RuntimeError: Default process group has not been initialized, please make sure to call init_process_
  20. 手把手教你使用Python获取B站视频并在本地实现弹幕播放功能

热门文章

  1. java面试之HashMap延伸出来的--什么是ConcurrentHashMap?
  2. Go语言的context包从放弃到入门
  3. 总结一下切换git地址 重合代码的过程
  4. apache axis 1.4的invoke方法设置超时_Kubernetes 网络故障常见排查方法
  5. scrapy爬取某网站文章
  6. VBA调用DOS程序两种方法
  7. django-装饰器实现PV统计
  8. Java中常用的6种排序算法详细分解
  9. ASP.NET MVC 4 (六) 帮助函数
  10. ORACLE查询原理