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中用于去除空格的三个函数的使用小结
Apr 07 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 Python
对python中的xlsxwriter库简单分析
May 04 Python
PyQt5实现暗黑风格的计时器
Jul 29 Python
使用IDLE的Python shell窗口实例详解
Nov 19 Python
Python绘图实现显示中文
Dec 04 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
Mar 30 Python
Selenium常见异常解析及解决方案示范
Apr 10 Python
Django 解决model 反向引用中的related_name问题
May 19 Python
Python3 如何开启自带http服务
May 18 Python
Python基础 括号()[]{}的详解
Nov 07 Python
基于Python实现流星雨效果的绘制
Mar 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创建多级目录代码
2008/06/05 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
php无限极分类实现方法分析
2019/07/04 PHP
JQuery获取文本框中字符长度的代码
2011/09/29 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
利用JavaScript的%做隔行换色的实例
2017/11/25 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
[00:58]PWL开团时刻DAY5——十人开雾0换5
2020/11/04 DOTA
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
python shell根据ip获取主机名代码示例
2017/11/25 Python
python实现石头剪刀布程序
2021/01/20 Python
Python实现去除图片中指定颜色的像素功能示例
2019/04/13 Python
django框架使用方法详解
2019/07/18 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
2019/08/20 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
党课知识竞赛主持词
2014/04/01 职场文书
中学生演讲稿
2014/04/26 职场文书
环境卫生标语
2014/06/09 职场文书
暑期培训班招生方案
2014/08/26 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
学生穿着不得体检讨书
2014/10/12 职场文书
2014年超市工作总结
2014/11/19 职场文书
广播体操比赛主持词
2015/06/29 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
Java集成swagger文档组件
2021/06/28 Java/Android