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下paramiko模块实现ssh连接登录Linux服务器
Jun 03 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
Jul 08 Python
Python 创建空的list,以及append用法讲解
May 04 Python
python实现连续图文识别
Dec 18 Python
Python操作Sqlite正确实现方法解析
Feb 05 Python
查看keras的默认backend实现方式
Jun 19 Python
Python如何实现线程间通信
Jul 30 Python
解决pip安装的第三方包在PyCharm无法导入的问题
Oct 15 Python
基于python的opencv图像处理实现对斑马线的检测示例
Nov 29 Python
Django开发RESTful API实现增删改查(入门级)
May 10 Python
分享7个 Python 实战项目练习
Mar 03 Python
Python识别花卉种类鉴定网络热门植物并自动整理分类
Apr 08 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设计模式 Composite (组合模式)
2011/06/26 PHP
php遍历文件夹和文件列表示例分享
2014/03/11 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
2015/12/31 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
js对文章内容进行分页示例代码
2014/03/05 Javascript
深入分析JSONP跨域的原理
2014/12/10 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
用python 制作图片转pdf工具
2015/01/30 Python
python函数装饰器用法实例详解
2015/06/04 Python
Python 基础教程之包和类的用法
2017/02/23 Python
selenium+python实现自动登录脚本
2018/04/22 Python
python脚本监控Tomcat服务器的方法
2018/07/06 Python
解决Tensorboard 不显示计算图graph的问题
2020/02/15 Python
Python中的Cookie模块如何使用
2020/06/04 Python
Python之字典对象的几种创建方法
2020/09/30 Python
html5利用canvas绘画二级树形结构图的示例
2017/09/27 HTML / CSS
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
离婚协议书怎么写
2014/09/12 职场文书
毕业生爱心捐书倡议书
2015/04/27 职场文书
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB