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 open()文件处理使用介绍
Nov 30 Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 Python
python操作redis的方法
Jul 07 Python
详解Django框架中用context来解析模板的方法
Jul 20 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
利用python的socket发送http(s)请求方法示例
May 07 Python
Python 使用类写装饰器的小技巧
Sep 30 Python
浅谈numpy生成数组的零值问题
Nov 12 Python
python实现贪吃蛇小游戏
Mar 21 Python
解决Python设置函数调用超时,进程卡住的问题
Aug 08 Python
pandas 中对特征进行硬编码和onehot编码的实现
Dec 20 Python
pytorch 计算Parameter和FLOP的操作
Mar 04 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
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
PHP冒泡排序算法代码详细解读
2011/07/17 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
用jscript启动sqlserver
2007/06/21 Javascript
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
详解ECharts使用心得总结
2016/12/06 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
Python 随机生成中文验证码的实例代码
2013/03/20 Python
Python实现字符串格式化输出的方法详解
2017/09/20 Python
Python建立Map写Excel表实例解析
2018/01/17 Python
python学习基础之循环import及import过程
2018/04/22 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
Python绘制全球疫情变化地图的实例代码
2020/04/20 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
2014年镇党建工作汇报材料
2014/11/02 职场文书
颐和园英文导游词
2015/01/30 职场文书
银行求职信模板
2015/03/20 职场文书
2019年员工旷工保证书!
2019/06/28 职场文书
python文件目录操作之os模块
2021/05/08 Python
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python
Python OpenGL基本配置方式
2022/05/20 Python