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

 更新时间:2018年02月11日 11:52:40   作者:lianliange85  
这篇文章主要介绍了django 按时间范围查询数据库实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

从前台中获得时间范围,在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 按时间范围查询数据库实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • 浅谈Python3 numpy.ptp()最大值与最小值的差

    浅谈Python3 numpy.ptp()最大值与最小值的差

    今天小编就为大家分享一篇浅谈Python3 numpy.ptp()最大值与最小值的差,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • python opencv的imread方法无法读取图片问题

    python opencv的imread方法无法读取图片问题

    这篇文章主要介绍了python opencv的imread方法无法读取图片问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python数据分析从入门到进阶之分类算法全面教程

    Python数据分析从入门到进阶之分类算法全面教程

    数据分析是处理和解释数据以发现有用信息和洞察的过程,其中,分类算法是数据分析领域的一个重要组成部分,它用于将数据分为不同的类别或组,本文将介绍分类算法的基本概念和进阶技巧,以及如何在Python中应用这些算法,包括示例代码和实际案例
    2023-11-11
  • Python动态生成多维数组的方法示例

    Python动态生成多维数组的方法示例

    这篇文章主要介绍了Python动态生成多维数组的方法,涉及Python数组动态遍历、添加、打印等相关操作技巧,需要的朋友可以参考下
    2018-08-08
  • Pytorch之扩充tensor的操作

    Pytorch之扩充tensor的操作

    这篇文章主要介绍了Pytorch之扩充tensor的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • selenium如何定位span元素的实现

    selenium如何定位span元素的实现

    这篇文章主要介绍了selenium如何定位span元素的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Docker部署Python爬虫项目的方法步骤

    Docker部署Python爬虫项目的方法步骤

    这篇文章主要介绍了Docker部署Python爬虫项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • python获取百度热榜链接的实例方法

    python获取百度热榜链接的实例方法

    在本篇文章里小编给大家整理了关于python获取百度热榜链接的实例方法,需要的朋友们可以学习参考下。
    2020-08-08
  • Python中SQLite如何使用

    Python中SQLite如何使用

    在本篇文章里小编给大家整理的是关于Python中SQLite的简单应用详解,需要的朋友们可以学习下。
    2020-05-05
  • PyTorch模型容器与AlexNet构建示例详解

    PyTorch模型容器与AlexNet构建示例详解

    这篇文章主要为大家介绍了PyTorch模型容器与AlexNet构建示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07

最新评论