日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2023/12/19 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的067:【Django数据库】ORM查询条件详解-range的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。