django 按时间范围查询数据库实例代码


Posted in Python onFebruary 11, 2018

从前台中获得时间范围,在django后台处理request中数据,完成format,按照范围调用函数查询数据库。

介绍一个简单的功能,就是从web表单里获取用户指定的时间范围,然后在数据库中查询此时间范围内的数据。

数据库里的model举例是这样:

class book(models.Model):  
  name = models.CharField(max_length=50, unique=True) 
  date = models.DateTimeField() 
    
  def __unicode__(self): return self.name

假设我们从表单获得的request.GET里面的时间范围最初是这样的:

request.GET = {'year_from': 2010, 'month_from': 1, 'day_from': 1, 
        'year_to':2013, 'month_to': 10, 'day_to': 1}

由于model里保存的date类型是models.DateTimefield() ,我们需要先把request里面的数据处理成datetime类型(这是django里响应代码的前半部分):

import datetime 
 
def filter(request): 
  if 'year_from' and 'month_from' and 'day_from' and\ 
      'year_to' and 'month_to' and 'day_to' in request.GET: 
    y = request.GET['year_from'] 
    m = request.GET['month_from'] 
    d = request.GET['day_from'] 
    date_from = datetime.datetime(int(y), int(m), int(d), 0, 0) 
    y = request.GET['year_to'] 
    m = request.GET['month_to'] 
    d = request.GET['day_to'] 
    date_to = datetime.datetime(int(y), int(m), int(d), 0, 0) 
  else: 
    print "error time range!"

接下来就可以用获得的 date_from date_to作为端点筛选数据库了,需要用到__range函数,将上面代码加上数据库查询动作:

import datetime 
 
def filter(request): 
  if 'year_from' and 'month_from' and 'day_from' and\ 
      'year_to' and 'month_to' and 'day_to' in request.GET: 
    y = request.GET['year_from'] 
    m = request.GET['month_from'] 
    d = request.GET['day_from'] 
    date_from = datetime.datetime(int(y), int(m), int(d), 0, 0) 
    y = request.GET['year_to'] 
    m = request.GET['month_to'] 
    d = request.GET['day_to'] 
    date_to = datetime.datetime(int(y), int(m), int(d), 0, 0) 
    book_list = book.objects.filter(date__range=(date_from, date_to)) 
    print book_list 
  else: 
    print "error time range!"

总结

以上就是本文关于django 按时间范围查询数据库实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python算法之栈(stack)的实现
Aug 18 Python
Python实现二叉搜索树
Feb 03 Python
Pycharm学习教程(7)虚拟机VM的配置教程
May 04 Python
python中实现精确的浮点数运算详解
Nov 02 Python
python3.7简单的爬虫实例详解
Jul 08 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
Jul 15 Python
使用pandas读取文件的实现
Jul 31 Python
WxPython实现无边框界面
Nov 18 Python
Python使用Pandas读写Excel实例解析
Nov 19 Python
Python如何使用BeautifulSoup爬取网页信息
Nov 26 Python
Python生成随机验证码代码实例解析
Jun 09 Python
python利用faker库批量生成测试数据
Oct 15 Python
python实现媒体播放器功能
Feb 11 #Python
python使用pycharm环境调用opencv库
Feb 11 #Python
Python元组及文件核心对象类型详解
Feb 11 #Python
详解Python核心对象类型字符串
Feb 11 #Python
python使用json序列化datetime类型实例解析
Feb 11 #Python
Python中pow()和math.pow()函数用法示例
Feb 11 #Python
Python反射的用法实例分析
Feb 11 #Python
You might like
php读取xml实例代码
2010/01/28 PHP
Laravel 5.3 学习笔记之 错误&日志
2016/08/28 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
jquery CSS选择器笔记
2010/03/29 Javascript
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
2020/08/11 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
python属于软件吗
2020/06/18 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
小学同学聚会感言
2015/07/30 职场文书
Python中文纠错的简单实现
2021/07/07 Python
react 路由Link配置详解
2021/11/11 Javascript
SQL Server远程连接的设置步骤(图文)
2022/03/23 SQL Server
linux目录管理方法介绍
2022/06/01 Servers