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 相关文章推荐
利用QT写一个极简单的图形化Python闹钟程序
Apr 07 Python
djang常用查询SQL语句的使用代码
Feb 15 Python
Python写一个基于MD5的文件监听程序
Mar 11 Python
Python实现的爬取百度贴吧图片功能完整示例
May 10 Python
Python小程序之在图片上加入数字的代码
Nov 26 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
Feb 26 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 Python
基于python制作简易版学生信息管理系统
Apr 20 Python
python 爬取京东指定商品评论并进行情感分析
May 27 Python
python四种出行路线规划的实现
Jun 23 Python
Python基础教程,Python入门教程(超详细)
Jun 24 Python
Python编程根据字典列表相同键的值进行合并
Oct 05 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下载excel无法打开的解决方法
2013/12/24 PHP
PHP中使用SimpleXML检查XML文件结构实例
2015/01/07 PHP
自己写的php curl库实现整站克隆功能
2015/02/12 PHP
PHP new static 和 new self详解
2017/02/19 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
IE8 原生JSON支持
2009/04/13 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
2016/09/04 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
vue.js中过滤器的使用教程
2017/06/08 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
Vue中Axios从远程/后台读取数据
2019/01/21 Javascript
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
Python队列的定义与使用方法示例
2017/06/24 Python
Flask入门之上传文件到服务器的方法示例
2018/07/18 Python
python实现播放音频和录音功能示例代码
2018/12/30 Python
pyqt5实现俄罗斯方块游戏
2019/01/11 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
python爬虫爬取监控教务系统的思路详解
2020/01/08 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
Python如何读写字节数据
2020/08/05 Python
NYX Professional Makeup英国官网:美国平价专业彩妆品牌
2019/11/13 全球购物
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
某公司部分笔试题
2013/11/05 面试题
管理专员自荐信
2014/01/26 职场文书
食品流通安全承诺书
2014/05/22 职场文书
政工例会汇报材料
2014/08/26 职场文书
清洁工个人总结
2015/03/04 职场文书
公司禁烟通知
2015/04/23 职场文书
pytorch 实现在测试的时候启用dropout
2021/05/27 Python
SQL实现LeetCode(177.第N高薪水)
2021/08/04 MySQL