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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

django rest framework 过滤 lim分页

發布時間:2023/12/6 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django rest framework 过滤 lim分页 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.過濾

1.首先引用diango 自帶的過濾配置

2.導入模塊

from django_filters.rest_framework import DjangoFilterBackend from django_filters import rest_framework as filters

3.一種簡單的過濾:

class BookView(ModelViewSet):queryset = Book.objects.all()serializer_class = BookSerializerfilter_backends = (DjangoFilterBackend,)filter_fields = ('title', 'price')

通過在瀏覽器后面帶上?price=100, 就可以精確過濾

?

自定義過濾

通過自己創建的過濾類來實現自定義過濾

class ProductFilter(filters.FilterSet):# 最小min_price = filters.NumberFilter(field_name="price", lookup_expr="gte")# 最大max_price = filters.NumberFilter(field_name="price", lookup_expr="lte")# 包含name = filters.CharFilter(field_name="title", lookup_expr="icontains")# 通過?字段自定義過濾class Meta:model = Bookfields = ["min_price", "max_price", "name"]

BookViews

class BookView(ModelViewSet):queryset = Book.objects.all()serializer_class = BookSerializerfilter_backends = (DjangoFilterBackend,)# 自定義過濾類filter_class = ProductFilter

?LimitOffset分頁

引入模塊

from rest_framework.pagination import LimitOffsetPagination

?

輸入代碼

class P1(LimitOffsetPagination):max_limit = 3default_limit = 2# 從offset開始訪問的下幾個limit_query_param = "limit"# 定義從表中的offset開始計算offset_query_param = "offset"class IndexView2(APIView):def get(self, request, *args, **kwargs):user_list = Book.objects.all()p1=P1()page_user_list = p1.paginate_queryset(queryset=user_list, request=request, view=self)print("打印的數據", page_user_list)ser = BookSerializer(instance=page_user_list, many=True)# return Response(ser.data)# 自帶分頁return p1.get_paginated_response(ser.data)class BookView(ModelViewSet):queryset = Book.objects.all()serializer_class = BookSerializerfilter_backends = (DjangoFilterBackend,)# 自定義過濾類filter_class = ProductFilterfilter_fields = ('title', 'price')# pagination_class = MyPageNumberPagination# authentication_classes = [UserAuth]# permission_classes = [UserPerm]

?

轉載于:https://www.cnblogs.com/zhangqing979797/p/10117613.html

總結

以上是生活随笔為你收集整理的django rest framework 过滤 lim分页的全部內容,希望文章能夠幫你解決所遇到的問題。

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