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检测服务器是否正常
Feb 16 Python
python获取文件扩展名的方法
Jul 06 Python
基于python的字节编译详解
Sep 20 Python
Window 64位下python3.6.2环境搭建图文教程
Sep 19 Python
python去除拼音声调字母,替换为字母的方法
Nov 28 Python
Python装饰器限制函数运行时间超时则退出执行
Apr 09 Python
学Python 3的理由和必要性
Nov 19 Python
python连接PostgreSQL过程解析
Feb 09 Python
如何写python的配置文件
Jun 07 Python
深入了解Python enumerate和zip
Jul 16 Python
Python面向对象特殊属性及方法解析
Sep 16 Python
python定义具名元组实例操作
Feb 28 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加入ftp扩展的解决方法
2013/02/07 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
js获取网页高度(详细整理)
2012/12/28 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
require.js的用法详解
2015/10/20 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
JS设置CSS样式的方式汇总
2017/01/21 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
NodeJS基础API搭建服务器详细过程记录
2017/04/01 NodeJs
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
详解node.js 事件循环
2020/07/22 Javascript
[44:51]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第二场
2018/04/05 DOTA
pygame播放音乐的方法
2015/05/19 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
详解python while 函数及while和for的区别
2018/09/07 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
python安装sklearn模块的方法详解
2020/11/28 Python
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
简单说说tomcat的配置
2013/05/28 面试题
什么是.net的Remoting技术
2016/07/08 面试题
饭店工作计划书
2014/01/10 职场文书
微观物理专业自荐信
2014/01/26 职场文书
怎么写自荐书范文
2014/02/12 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
什么是就业协议书
2014/04/17 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
Python pandas之求和运算和非空值个数统计
2021/08/07 Python
浅谈Python中对象是如何被调用的
2022/04/06 Python