博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
067:【Django数据库】ORM查询条件详解-range
阅读量:6720 次
发布时间:2019-06-25

本文共 1509 字,大约阅读时间需要 5 分钟。

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

range:

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

# views.py文件内容: from datetime import datetimefrom 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

你可能感兴趣的文章
linux查看硬件信息
查看>>
apache http的源码编译
查看>>
find命令的参数
查看>>
H3C交换机配置镜像端口
查看>>
ESXI6.0(6.7)实践——惠普A6 7310主板,APU,Realtek网卡的安装之路
查看>>
我的友情链接
查看>>
26期学员参观森华易腾移动IDC机房有感
查看>>
三、一个简单的BDB JE例子
查看>>
在Windows Server2008R2安装Oracle Database 11g Release 2
查看>>
借助mysql和DNS view实现智能DNS(centos6.3 x64环境)
查看>>
维纳-辛钦 (Wiener–Khinchin) 定理
查看>>
修改mysql的数据库密码
查看>>
Nginx安装图文
查看>>
解决DataNode启动不起来原因
查看>>
tomcat处理jsp页面的流程
查看>>
fedora的一些使用记录(二)
查看>>
为什么电子人的世界阴盛阳衰?
查看>>
解析InputStream流工具
查看>>
我的友情链接
查看>>
varchar2转clob
查看>>