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语言生成水仙花数代码示例
Dec 18 Python
Python实现读取Properties配置文件的方法
Mar 29 Python
Django中数据库的数据关系:一对一,一对多,多对多
Oct 21 Python
python操作kafka实践的示例代码
Jun 19 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
pytorch使用tensorboardX进行loss可视化实例
Feb 24 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
Apr 13 Python
使用matlab 判断两个矩阵是否相等的实例
May 11 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
详解python对象之间的交互
Sep 29 Python
Python项目实战之使用Django框架实现支付宝付款功能
Feb 23 Python
Python软件包安装的三种常见方法
Jul 07 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
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
php解析json数据实例
2014/08/19 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
JS焦点图切换,上下翻转
2011/05/12 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
2013/08/05 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
2015/03/12 Javascript
javascript实现在网页中运行本地程序的方法
2016/02/03 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
JavaScript如何借用构造函数继承
2019/11/06 Javascript
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
Pytorch加载部分预训练模型的参数实例
2019/08/18 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
后勤部长岗位职责
2013/12/14 职场文书
应届生如何写自荐信
2014/01/05 职场文书
区三好学生主要事迹
2014/01/30 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
质量安全标语
2014/06/07 职场文书
物流专业求职信
2014/06/30 职场文书
三八活动策划方案
2014/08/17 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
西安事变观后感
2015/06/12 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
2021/06/03 Python