django 按时间范围查询数据库实例代码

从前台中获得时间范围,在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和Django完成博客数据库的迁移方法
  • 在python3环境下的Django中使用MySQL数据库的实例
  • python django 增删改查操作 数据库Mysql
  • Django1.7+python 2.78+pycharm配置mysql数据库
  • Python的Django框架中使用SQLAlchemy操作数据库的教程
  • 在Python的Django框架中更新数据库数据的方法
  • Python的Django框架中的数据库配置指南
  • Python的Django框架可适配的各种数据库介绍
(0)

相关推荐

  • Python的Django框架可适配的各种数据库介绍

    在 Django 中使用 PostgreSQL 使用 PostgreSQL 的话,你需要从 http://www.djangoproject.com/r/python-pgsql/ 下载 psycopg 这个开发包. 我们建议使用psycopg2,因为它是新的,开发比较积极,且更容易安装. 留意你所用的是 版本 1 还是 2,稍后你会需要这项信息. 如果在 Windows 平台上使用 PostgreSQL,可以从 http://www.djangoproject.com/r/python-pgs

  • Python的Django框架中的数据库配置指南

    记住这些理念之后,让我们来开始 Django 数据库层的探索. 首先,我们需要做些初始配置:我们需要告诉Django使用什么数据库以及如何连接数据库. 我们假定你已经完成了数据库服务器的安装和激活,并且已经在其中创建了数据库(例如,用 CREATE DATABASE 语句). 如果你使用SQLite,不需要这步安装,因为SQLite使用文件系统上的独立文件来存储数据. 象前面章节提到的 TEMPLATE_DIRS 一样,数据库配置也是在Django的配置文件里,缺省 是 settings.py

  • Python的Django框架中使用SQLAlchemy操作数据库的教程

    零.SQLAlchemy是什么? SQLAlchemy的官网上写着它的介绍文字: SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. SQLAlchemy 是一个非常强大的ORM和数据库工具,但是它庞大的文档和复杂的功能总是让很 多人望而生畏.而Django的ORM相对来说

  • 在Python的Django框架中更新数据库数据的方法

    先使用一些关键参数创建对象实例,如下: >>> p = Publisher(name='Apress', ... address='2855 Telegraph Ave.', ... city='Berkeley', ... state_province='CA', ... country='U.S.A.', ... website='http://www.apress.com/') 这个对象实例并 没有 对数据库做修改. 在调用`` save()`` 方法之前,记录并没有保存至数据库,

  • Django1.7+python 2.78+pycharm配置mysql数据库

    配置好virtualenv 和virtualenvwrapper后,使用pycharm创建新项目.之后要面临的问题就来了,之前一直使用的是sqlite作为开发数据库进行学习,按照之前看教程的原则,好像就是说开发环境要和生产环境尽量的一致,所以现在想尝试一下使用更有可能在生产环境部署的mysql数据库进行开发. 本觉得是一件应该很轻松的事情,没想到遇到了一些麻烦 根据一通百度,搜出来的方案大概有: MySQLdb mysql安装时候自带的connector pymysql MySQLdb 是dja

  • 使用python和Django完成博客数据库的迁移方法

    上一讲完成了基本博客的配置和项目工程的生成.这次开始将博客一些基本的操作主要是数据库方面学习. 1.设计博客数据库表结构 博客最主要的功能就是展示我们写的文章,它需要从某个地方获取博客文章数据才能把文章展示出来,通常来说这个地方就是数据库.我们把写好的文章永久地保存在数据库里,当用户访问我们的博客时,Django 就去数据库里把这些数据取出来展现给用户. 博客的文章应该含有标题.正文.作者.发表时间等数据.一个更加现代化的博客文章还希望它有分类.标签.评论等.为了更好地存储这些数据,我们需要合理

  • 在python3环境下的Django中使用MySQL数据库的实例

    我们在使用Django过程中,数据库往往是离不开的,比较长常用的是MySQL数据库,但在使用过程中,对Python不同的版本对用的库也不一样,用惯了Python2的人在使用Python3时经常会遇到下面的错误: Error loading MySQLdb module: No module named 'MySQLdb'. 这是因为Python3 MySQL的支持库为pymysql所致,所以我们要下载pymysql数据库. 并且在站点文件夹下的__init__.py(project同名目录下,而

  • python django 增删改查操作 数据库Mysql

    下面介绍一下django增删改查操作: 1.view.py # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.http import HttpResponse from polls.models import Test from django.shortcuts import render # Create your views here. # 解决乱码 import sys reload(sy

  • django 按时间范围查询数据库实例代码

    从前台中获得时间范围,在django后台处理request中数据,完成format,按照范围调用函数查询数据库. 介绍一个简单的功能,就是从web表单里获取用户指定的时间范围,然后在数据库中查询此时间范围内的数据. 数据库里的model举例是这样: class book(models.Model): name = models.CharField(max_length=50, unique=True) date = models.DateTimeField() def __unicode__(s

  • Django+mysql配置与简单操作数据库实例代码

     第一步:下载mysql驱动 cmd进入创建好的django项目目录:使用命令 pip install mysqlclient 等待安装成功! 第二步:在settings.py中配置mysql连接参数(没有mysql的先装mysql) DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '数据库名(你得先在mysql中创建数据库)', 'USER':'mysql用户名(如root)', 'PASSWOR

  • pycharm+django创建一个搜索网页实例代码

    本文主要研究的是pycharm+django创建一个搜索网页的实例代码,具体步骤和代码示例如下. 创建工程 比如,我创建的工程目录结构如下: 命令行 进入windows命令行,进入根目录: python manage.py startapp django_web 接着你会在pycharm中发现,多了一个django_web文件夹.如下将截图: 创建一个test.html <!DOCTYPE html> <html> <head> <title>开始搜索<

  • SQL Server 2012 多表连接查询功能实例代码

    废话不多说了,直接给大家贴代码了,具体代码如下所示: -- 交叉连接产生笛卡尔值 (X*Y) SELECT * FROM Student cross Join dbo.ClassInfo --另外一种写法 SELECT * FROM Student , ClassInfo -- 内连接 (Inner 可以省略) SELECT * FROM Student JOIN dbo.ClassInfo ON dbo.Student.Class = dbo.ClassInfo.ID; -- Inner Jo

  • Android sd卡读取数据库实例代码

    Android sd卡读取数据库实例代码 前言: 本文主要给大家讲解如何利用Android SD卡读取数据库,提供一些代码如下.先在 Manifest 里添加权限: <span style="font-size:16px;"><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name=

  • python通过elixir包操作mysql数据库实例代码

    本文研究的主要是python通过elixir包操作mysql数据库的相关实例,具体如下. python操作数据库有很多方法,下面介绍elixir来操作数据库.elixir是对sqlalchemy lib的一个封装,classes和tables是一一对应的,能够一步定义classes,tables和mappers,支持定义多个primary key. 定义model.py from elixir import sqlalchemy from elixir import * engine =sqla

  • Django模板继承 extend标签实例代码详解

    在 views.py 上修改 ... def ordered(req): return render(req, "ordered.html") def shopping_car(req): return render(req, "shopping_car.html") 在 urls.py 上修改 ... path('ordered/', views.ordered), path('shopping_car/', views.shopping_car), ... 在

  • Django与pyecharts结合的实例代码

    一.创建Application 转到manage.py的同级目录,运行: py manage.py startapp NLP 在sitting.py中注册该Application: # Application definition #包含项目中启用的所有Django应用 INSTALLED_APPS = [ 'polls.apps.PollsConfig',#将创建的polls添加到项目中 'NLP' 'django.contrib.admin', 'django.contrib.auth',

  • C#使用LINQ查询操作符实例代码(一)

    目录 相关阅读 示例业务背景介绍 一.筛选操作符 结果: 1.索引器筛选 2.类型筛选OfType 二.投影操作符 1.Select 子句 结果: 相应的lambda表达式: 2.复合的From子句 三.let子句 四.排序操作符 使用ThenBy() 和 ThenByDescending() 方法继续排序进行二次排序 五.分组操作符 1.对嵌套的对象分组 2.多字段分组 3.分组后再每组里面仅取满足条件的行 相关阅读 C#使用LINQ查询操作符实例代码(一) C#使用LINQ查询操作符实例代码

  • php+mysqli使用面向对象方式查询数据库实例

    本文实例讲述了php+mysqli使用面向对象方式查询数据库的方法.分享给大家供大家参考.具体实现方法如下: <?php //第一步:创建数据连接对象 $mysqli = new MySQLi("localhost","root","123456"); //默认的 MySQL的类,其属性与方法见手册 if($mysqli->connect_error){//connect_error为属性,报错 die("数据库连接失败:&

随机推荐