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 GAE、Django导出Excel的方法
Nov 24 Python
Python访问纯真IP数据库脚本分享
Jun 29 Python
使用Python从有道词典网页获取单词翻译
Jul 03 Python
Python使用迭代器捕获Generator返回值的方法
Apr 05 Python
python 如何快速找出两个电子表中数据的差异
May 26 Python
Python2.7下安装Scrapy框架步骤教程
Dec 22 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
Apr 11 Python
PYTHON如何读取和写入EXCEL里面的数据
Oct 28 Python
基于python实现地址和经纬度转换
May 19 Python
OpenCV读取与写入图片的实现
Oct 13 Python
python3排序的实例方法
Oct 20 Python
MoviePy常用剪辑类及Python视频剪辑自动化
Dec 18 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 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
详解Window7 下开发php扩展
2015/12/31 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
javascript中的location用法简单介绍
2007/03/07 Javascript
javascript+mapbar实现地图定位
2010/04/09 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
2016/11/09 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
ionic实现底部分享功能
2017/05/11 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
Python中random模块生成随机数详解
2016/03/10 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
什么是python的id函数
2020/06/11 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
写一个方法1000的阶乘
2012/11/21 面试题
单位介绍信范文
2014/01/18 职场文书
北体毕业生求职信
2014/02/28 职场文书
小学生植树节活动总结
2014/07/04 职场文书
11.9消防日宣传标语
2014/10/08 职场文书
党员干部三严三实心得体会
2014/10/13 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
2015党建工作简报
2015/07/21 职场文书
2016幼儿园教师年度考核评语
2015/12/01 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB