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 27 Python
单链表反转python实现代码示例
Feb 08 Python
python3 图片referer防盗链的实现方法
Mar 12 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
对python抓取需要登录网站数据的方法详解
May 21 Python
Pytorch 的损失函数Loss function使用详解
Jan 02 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
如何查看Django ORM执行的SQL语句的实现
Apr 20 Python
python输出数学符号实例
May 11 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
May 12 Python
python 中关于pycharm选择运行环境的问题
Oct 31 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 5.3.0 安装分析心得
2009/08/07 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
php封装的表单验证类完整实例
2016/10/19 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
Angular之toDoList的实现代码示例
2017/12/02 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
layui table单元格事件修改值的方法
2019/09/24 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
详解vue实现坐标拾取器功能示例
2020/11/18 Vue.js
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
Python2.x中文乱码问题解决方法
2015/06/02 Python
python实现将内容分行输出
2015/11/05 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
测试工程师岗位职责
2013/11/28 职场文书
高一数学教学反思
2014/02/07 职场文书
幼儿园教师工作感言
2014/02/15 职场文书
倡议书格式
2014/04/14 职场文书
信息合作协议书
2014/10/09 职场文书
乡镇党的群众路线教育实践活动总结报告
2014/10/30 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
二十年同学聚会感言
2015/07/30 职场文书
Apache POI的基本使用详解
2021/11/07 Servers
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python