DJango 多条件查询结果分页
为什么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 多条件查询结果分页相关推荐
- SSM整合 mybatis多条件查询与分页
多条件查询与分页: 通过页面的houseName.floorage获取值传到前端视图(HouseSearchVO)实体类中的houseName,floorage建立houseSearchVO对象. 通 ...
- java mongodb 多表关联查询,多条件查询,分页,排序
前言: 由于最近项目赶,版本迭代快,不知道大BOSS从哪里听别人说MongoDB用来做关系型数据库好,而且速度快,性能高:听到这话的我,立马就反驳了回去:"MongoDB不支持事物" ...
- 谷粒学院-分页查询、条件查询带分页、添加、修改
讲师分页查询 注意:也可以使用MyBatis分页插件PageHelper,这里不用 https://blog.csdn.net/ZHOU_VIP/article/details/121773800 1 ...
- mybatis-puls条件查询、分页功能
mybatis-puls条件查询.分页功能 MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 My ...
- oracle存储过程 多条件,Oracle多条件查询实际分页存储过程实操
以下的文章主要是介绍Oracle多条件查询分页存储过程,以下就是Oracle多条件查询分页存储过程具体方案的描述,希望在你今后的学习中会有所帮助.将业务逻辑放到Oracle中使得后台代码很精简,Ora ...
- mysql 条件查询分页_百万数据下mysql条件查询及分页查询的注意事项
接上一节<百万数据mysql分页问题>,我们加上查询条件:select id from news where cate = 1 order by id desc limit 500000 ...
- vue 前端项目带条件查询的分页列表开发实战
一 添加医院设置路由 修改文件 E:\vue-sdgt\src\router\index.js {path: '/hospital',component: Layout,redirect: '/hos ...
- Mysql数据库常用查询方法及演示(where条件查询、分页、排序等)
Mysql数据库常用查询方法及演示 where条件查询的介绍 使用where条件查询可以对表中的数据进行筛选,条件成立的记录会出现在结果集中. where语句支持的运算符: 比较运算符 逻辑运算符 模 ...
- Entity Framework4.1实现动态多条件查询、分页和排序
EF通用的分页实现: /// <summary> /// 根据条件分页获得记录 /// </summary> /// <param name="where&qu ...
最新文章
- 3d max 安装和导入rvt模型失败
- JS正则表达式校验金额
- 2017-2018-1 20155222 201552228 实验五 通讯协议设计
- XSS跨站脚本攻击在Java开发中防范的方法
- 软考解析:2017年上半年下午试卷
- 好记性不如烂笔头,记录几个常用的Linux操作
- java 创建文件夹的方法_java中创建文件夹的方法
- QQ网页链接打开本地QQ.exe原理
- 马尔科夫决策过程(MDP) : GridWord(DP)
- 基于matlab的双闭环直流调速系统,基于MATLAB的双闭环直流调速系统建模与仿真.PDF...
- (转帖)ConcurrentHashMap实现原理(3)
- Whois查询结果中不同域名状态的含义
- 使用学信网认证,免费获取JetBrains学习产品
- MySQL必知必会的知识点
- 无论被多少人喷,《王牌战士》这次真的火了吗?
- 控制系统分析常用命令
- hackthebox(HTB) Ambassdor !
- Raphael绘制流程图箭头的方法
- RuntimeError: Default process group has not been initialized, please make sure to call init_process_
- 手把手教你使用Python获取B站视频并在本地实现弹幕播放功能