最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django項(xiàng)目單字段區(qū)間查詢的實(shí)現(xiàn)

 更新時(shí)間:2023年10月30日 15:07:27   作者:LoisMay  
在Django項(xiàng)目中會碰到一些需求就是查詢某個(gè)表中的一些字段從某日到某日的數(shù)據(jù),你可以像在SQL中那樣使用SELECT語句來查找指定字段,本文就來介紹兩種方法,感興趣的可以了解一下

在Django項(xiàng)目中會碰到一些需求就是查詢某個(gè)表中的一些字段從某日到某日的數(shù)據(jù),而且是對但字段查詢這個(gè)時(shí)候我們有兩兩種方法解決

單字段類型是DateTimeField的

查詢?nèi)掌诜秶?這個(gè)時(shí)候在filter.py里面重寫DateTimeFromToRangeFilter,為什么要重寫呢?
因?yàn)槲覀冏鰠^(qū)間查詢 起始與結(jié)束時(shí)間兩個(gè)日期當(dāng)天的數(shù)據(jù)也需要的,如果不重寫的話起止兩天當(dāng)天的數(shù)據(jù)是沒有的,它的查詢規(guī)則是<=沒有>=這個(gè)時(shí)候我們就需要去重寫,在獲得結(jié)束日期的時(shí)候給它加一天日期即可達(dá)到效果>=

注意重寫這個(gè)方法URL必須按照規(guī)定前綴后綴是 _after 和 _before

http://192.168.31.14:8000/gt_computer/?create_time_after=2023-09-13&create_time_before=2023-09-13

filters.py

	class CustomDateTimeFromToRangeFilter(filters.DateTimeFromToRangeFilter):
	    def filter(self, qs, value):
	        if value and value.stop:
	            new_value = slice(value.start, value.stop + timedelta(days=1))
	            return super().filter(qs, new_value)
	        return super().filter(qs, value)
	
	
	class ComputerFileter(filters.FilterSet):
	    create_time = CustomDateTimeFromToRangeFilter()
	
	    class Meta:
	        model = ComputerStatusRecord
	        fields = '__all__'

serializers.py

	class ComputerSerializer(ModelSerializer):
	    create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", read_only=True)	
	    # 注意重寫之后需要添加read_only要不然models.py里面的設(shè)置的屬性沒用了
	
	    class Meta:
	        model = ComputerStatusRecord
	        fields = "__all__"

方法二

上面的方法單指的是時(shí)間字段,方法二可以指認(rèn)到數(shù)字及時(shí)間都可以匹配,就是當(dāng)我們get請求進(jìn)來都會走到get_queryset,這個(gè)時(shí)候我們可以重寫它返回指定的內(nèi)容做區(qū)間查詢即可。

這個(gè)時(shí)候我們就不需要指定固定前后綴都可以使用

views.py

    def get_queryset(self):
        queryset = super().get_queryset()
        filters = {}
        for field_name in ['sum_number', 'over_kill_number', 'miss_number',		# 需要區(qū)間查詢的字段
                           'over_kill_rate', 'miss_rate']:
            after = self.request.query_params.get(f'{field_name}_after')	# 可以根據(jù)自己的需求而定
            before = self.request.query_params.get(f'{field_name}_before')

            if after and before:
                filters[f'{field_name}__gte'] = after		
                filters[f'{field_name}__lte'] = before

        if filters:
            queryset = queryset.filter(**filters)	# 區(qū)間查詢

        return queryset

到此這篇關(guān)于Django項(xiàng)目單字段區(qū)間查詢的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Django 單字段區(qū)間查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • python通過urllib2獲取帶有中文參數(shù)url內(nèi)容的方法

    python通過urllib2獲取帶有中文參數(shù)url內(nèi)容的方法

    這篇文章主要介紹了python通過urllib2獲取帶有中文參數(shù)url內(nèi)容的方法,涉及Python中文編碼的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • numpy.linspace函數(shù)具體使用詳解

    numpy.linspace函數(shù)具體使用詳解

    這篇文章主要介紹了numpy.linspace具體使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python中 Lambda表達(dá)式全面解析

    Python中 Lambda表達(dá)式全面解析

    Lambda是一種匿名函數(shù),當(dāng)我們需要重復(fù)調(diào)用某一函數(shù),又不想寫那么多代碼時(shí)可以使用lambda表達(dá)式來代替。本文給大家介紹Python中 Lambda表達(dá)式,需要的朋友一起學(xué)習(xí)吧
    2016-11-11
  • Python堆排序的實(shí)現(xiàn)示例

    Python堆排序的實(shí)現(xiàn)示例

    堆排序是一種基于二叉堆數(shù)據(jù)結(jié)構(gòu)的排序算法,本文主要介紹了Python堆排序的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • python實(shí)現(xiàn)自動(dòng)登錄跳轉(zhuǎn)頁面并獲取信息

    python實(shí)現(xiàn)自動(dòng)登錄跳轉(zhuǎn)頁面并獲取信息

    這篇文章主要為大家詳細(xì)介紹了如何使用python實(shí)現(xiàn)自動(dòng)登錄跳轉(zhuǎn)頁面并獲取信息功能,文中的示例代碼講解詳細(xì),有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-05-05
  • Pyinstaller打包.py生成.exe的方法和報(bào)錯(cuò)總結(jié)

    Pyinstaller打包.py生成.exe的方法和報(bào)錯(cuò)總結(jié)

    今天小編就為大家分享一篇關(guān)于Pyinstaller打包.py生成.exe的方法和報(bào)錯(cuò)總結(jié),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Python fileinput模塊使用介紹

    Python fileinput模塊使用介紹

    這篇文章主要介紹了Python fileinput模塊使用方法,需要的朋友可以參考下
    2014-11-11
  • Python調(diào)用VBA實(shí)現(xiàn)保留原始樣式的表格合并方法

    Python調(diào)用VBA實(shí)現(xiàn)保留原始樣式的表格合并方法

    本文主要介紹了Python調(diào)用VBA實(shí)現(xiàn)保留原始樣式的表格合并方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 對Pandas DataFrame缺失值的查找與填充示例講解

    對Pandas DataFrame缺失值的查找與填充示例講解

    今天小編就為大家分享一篇對Pandas DataFrame缺失值的查找與填充示例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python K近鄰算法的kd樹實(shí)現(xiàn)

    python K近鄰算法的kd樹實(shí)現(xiàn)

    這篇文章主要介紹了python K近鄰算法的kd樹實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09

最新評論

江都市| 东丽区| 鹤山市| 镇平县| 武功县| 县级市| 喀什市| 武定县| 县级市| 汤原县| 宕昌县| 惠州市| 甘孜| 乌兰察布市| 彭州市| 虎林市| 简阳市| 邻水| 南京市| 平邑县| 海口市| 云阳县| 昔阳县| 石门县| 祥云县| 芒康县| 当雄县| 成都市| 定陶县| 招远市| 左贡县| 富民县| 山丹县| 博白县| 桦南县| 富蕴县| 山西省| 海晏县| 哈密市| 苍溪县| 沛县|