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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

django按日期查询数据

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django按日期查询数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、數據庫模型 。

from django.db import modelsclass Get_time(models.Model):'''測試'''name = models.CharField(max_length=12)time= models.DateTimeField(auto_now_add=True)

2、序列化和分頁。?

from rest_framework import serializersfrom knife_manage import modelsclass Get_time_Serializer(serializers.ModelSerializer):'''序列化'''class Meta:model = models.Get_timefields = '__all__'class PageNumber(PageNumberPagination):'''分頁'''page_size = 50page_size_query_param = 'size'max_page_size = 5page_query_param = 'page'

3、路由。

url(r'^/test/$', views.Timeview.as_view({'get':'filter','post':'post'})),

?4、視圖。

class Timeview(ModelViewSet):authentication_classes = [] # 取消用戶認證queryset = models.Get_time.objects.all()serializer_class = Get_time_Serializer # 序列化數據pagination_class = PageNumber() # 分def filter(self, request, *args, **kwargs):"""多條件查詢匹配"""queryset = models.Get_time.objects.filter(time__year = 2020) # 按年查詢queryset = models.Get_time.objects.filter(time__month = 12) # 按月查詢queryset = models.Get_time.objects.filter(time__day= 9) # 按日查詢now = datetime.datetime.now()start = now-datetime.timedelta(hours=12, minutes=0, seconds=0)queryset = models.Get_time.objects.filter(time__gt= start) # 大于某個日期queryset = models.Get_time.objects.filter(time__lt= start) # 小于某個日期start_date = datetime.date(2009, 1, 1)end_date = datetime.date(2020, 3, 31)queryset = models.Get_time.objects.filter(time__range=(start_date, end_date)) # 按區間查詢queryset = models.Get_time.objects.filter(time__week_day=4) # 按星期幾查詢pager_size = self.pagination_class.paginate_queryset(queryset=queryset, request=request, view=self)ser = self.serializer_class(instance=pager_size, many=True)return self.pagination_class.get_paginated_response(ser.data)def post(self, request, *args, **kwargs):"""新增"""try:import randomname=random.randint(10000,99999)return Response({'info': '操作成功!', 'code': 200})except Exception:return Response({'info': '操作失敗!', 'code': 400})

5、結果:

6、extra。

1)、用戶選擇日歷查詢。

range=['2019-03-04', '2019-06-24'] # 前臺傳過來的數據 start=[int(x) for x in range[0].split('-')] end=[int(x) for x in range[1].split('-')] start_date = datetime.date(start[0], start[1],start[2]) end_date = datetime.date(end[0],end[1],end[2])

?2)、用戶選擇特定日期。

(2)、未設置時區時的操作 request_time='2012-09-09' time_split=[int(x) for x in request_time.split('-')] times='%s-%s-%s'%(time_split[0],time_split[1],time_split[2]+1) cday = datetime.strptime(times, '%Y-%m-%d') models.Get_time.objects.create(name=name,time=cday)(2)、設置時區時的操作 配置文件設置時區: TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_TZ = False視圖: request_time='2012-09-09' cday = datetime.strptime(request_time, '%Y-%m-%d') models.Get_time.objects.create(name=name,time=cday)

?

總結

以上是生活随笔為你收集整理的django按日期查询数据的全部內容,希望文章能夠幫你解決所遇到的問題。

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