067:【Django数据库】ORM查询条件详解-range

【Django数据库】ORM查询条件详解-range

range:
判断某个 field 的值是否在给定的区间中。示例代码如下:

# views.py文件内容:
from
datetime import datetime from django.utils.timezone import make_awaredef index(request):start_time = make_aware(datetime(year=2019, month=1, day=7, hour=21, minute=0, second=0 ))end_time = make_aware(datetime(year=2019, month=1, day=7, hour=22, minute=0, second=0 ))articles = Article.objects.filter(create_time__range=(start_time, end_time))print(articles.query)print(articles)return HttpResponse("success")
# models.py文件内容:
class
Article(models.Model):title = models.CharField(max_length=100)content = models.TextField()category = models.ForeignKey('Category', on_delete=models.CASCADE, null=True)# category = models.ForeignKey('Category', on_delete=models.CASCADE, null=True, related_query_name=articles)create_time = models.DateTimeField(auto_now_add=True, null=True) # 主要是这行

以上代码的意思是提取所有发布时间在 2019/1/7 21点 到 22点之间的文章。将翻译成以下的 SQL 语句:

SELECT `article`.`id`, `article`.`title`, `article`.`content`, `article`.`category_id`, `article`.`create_time` FROM `article` WHERE `article`.`create_time` BETWEEN 2019-01-07 13:00:00 AND 2019-01-07 14:00:00

需要注意的是,以上提取数据,不会包含最后一个值。也就是不会包含 2019/1/7 22点 的文章。而且另外一个重点,因为我们在 settings.py 中指定了 USE_TZ=True ,并且设置了 TIME_ZONE='Asia/Shanghai' ,因此我们在提取数据的时候要使用 django.utils.timezone.make_aware 先将 datetime.datetime 从 navie 时间转换为 aware 时间。 make_aware 会将指定的时间转换为 TIME_ZONE 中指定的时区的时间。

实例截图如下:

 

转载于:https://www.cnblogs.com/zheng-weimin/p/10235874.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贴吧爬虫

import requests import re#根据url获取网页html内容 def getHtmlContent(url):page requests.get(url)return page.texthtml getHtmlContent(https://tieba.baidu.com/p/4840106397)#以html中使用re模块解析出所有jpg图片的url #百度贴吧html中jpg图片的url格式:…

别把自己变成了“二等公民”

上周参加一个代码审查会,在会上发现了设计上的一个很严重的错误。于是,我提了好几个问题,想知道为什么会出现这一错误。但是,我的同事告诉我这都是印度团队做的设计。需要提供的一个背景信息是,这个项目是我所在的研发…

jquery函数加载及生成随机数

$(document).ready(function () {var code ; //在全局定义验证码  1.将函数写好 function createCode(){code "";var codeLength 4;//验证码的长度var checkCode document.getElementById("code");var random new Array(0,1,2,3,4,5,6,7,8,9,A,B,C…

rsync解说

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 一、简介1、认识Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间…

关于java中getClass()和getSuperClass()的讲解

为了讲解这个问题,我们先来看一下下面的代码: package com.yonyou.test;import java.util.Date;class Test extends Date{private static final long serialVersionUID 1L;public static void main(String[] args) {new Test().print();}public void print(){Syste…

期权回测框架设计思路

期权回测,博主已经研究了很长时间,也接触了不少平台,如真格,以及这位博主提供的思路(https://blog.csdn.net/luoqingyong/article/details/107523930),利用backtrader进行期权回测。确实国内做期…

UVA815

这道题主要学到的就是数据结构的组织,一些需要从小到大排列的东西,这些东西还有对应的东西。这个时候使用map可以解决 下面贴出代码。其中所使用的思想,估计这个东西是没法学的,这就只能是灵感 //这是什么吉尔题,题意都…

我对应聘者的面试原则

最近参与了几次单位招聘面试工作,在面试工程师时,我是用我的分层准则指导与候选人的交流内容,以确定他的能力层次是否达到我所期望的。大体上软件工程师可以分为三大层次,分别是技术知识积累层、掌握设计方法层以及运用开发方法论…

rsync:基本命令和用法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 2.1 说在前面的话 rsync官方网站: https://www.samba.org/ftp/rsync/rsync.html rsync是可以实现增量备份的工具。配合任务计划&#…

Java常见排序算法之堆排序

在学习算法的过程中,我们难免会接触很多和排序相关的算法。总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的。 从今天开始,我们将要进行基本的排序算法的讲解。Are you ready?Let‘s go~~~ 1、排序算法的…

python量化数据处理小细节2

处理数据主要使用的是DataFrame格式,偶尔也会有list格式。 首先定位寻找数据:主要为loc,iloc 创建DataFrame: df pd.DataFrame([1,2,3,4,5],index [a,b,c,d,e],columns[aa])或 datapd.DataFrame(np.arange(16).reshape(4,4),i…

python编码问题

参考:https://blog.csdn.net/qq_33692803/article/details/81321340 注意区分系统默认编码和本地默认编码、编码和解码的区别转载于:https://www.cnblogs.com/jianglinliu/p/10418437.html

软件工程师所需掌握的“终极技术”是什么?

最近,我在微博上看到程序员邹欣老师发的一条微博 — “不少大学同学都有一个想法:先做几年技术,然后做管理;也有一些同学说:我技术不行,希望直接找到一个管理的工作,就像PM那样。请看 PM 需要什…

linux中项目部署和日志查看

1 查找进程 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 ps -ef | grep java 查看所有关于java的进程 root 17540 1 0 2009 ? 01:42:27 /usr/java/jdk1.5.0_1…

dspmq dspmqver command not found(dspmq命令找不到,dspmqver主安装目录设置不正确

[rootrhv6-64b ~]# su - mqm -bash-4.1$ dspmq -bash: dspmq: command not found(dspmq命令找不到) -bash-4.1$ dspmqver(dspmqver主安装目录设置不正确) AMQ8594: WebSphere MQ commands are no longer available in /usr/bin. I…

lambda表达式与委托与线程初步谈论-基于刘铁锰视频观后操作

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;//线程 using System.Threading;//引用线程方法namespace ConsoleApplication2 {class Program{static void Main(string[] args){//委托详解//Func返回…

2020-11-21

获取数据后,需要对数据进行合并,通常是日期,也有对相同公司进行合并 下面就研究数据合并的常用方法: 目录appendmergeon属性how属性(inner,outer,left , right)indicato…

走技术线,还是技术管理线?

最近因为要给刚毕业的学生做一次演讲,所以就职业发展这类话题先以写博客的形式做一些思考,希望届时能给同学们带来质量更高的内容。我在《驾驭你的“职场布朗运动”》一文中谈了25条职场感悟并提出了“走技术线,还是技术管理线?”…

[Nikon D80]樱花盛开的校园

花开花落,阳春三月,随身背着相机在学校里游走,不断的寻找视角。知道自己拍的不好,总觉得自己拍的片有各式各样的缺陷,也许这就是大师与学徒的区别吧。用好手头的装备,出好片,锻炼Visual Effect …

「LG2664 树上游戏」

题目 这真是一道神仙的一批的题目 定义\(s(i,j)\)表示从点\(i\)到点\(j\)经过的颜色数量 设 \[sum_i\sum_{j1}^ns(i,j)\] 求出所有的\(sum_i\) 考虑点分治 对于一个点我们用两种方式来统计其答案 这个点作为分治重心时,分值区域内所有点到这个点贡献这个点不是分治重…