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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281296.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281296.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281296.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL用戶及權限管理

MySQL用戶及權限管理查看用戶及權限查看用戶及作用域(使用范圍)查看用戶權限創建用戶及授權字段參數用戶管理使用命令提示符登錄MySQL mysql -h localhost -u root -p查看用戶及權限 mysql中的用戶信息和權限等都存儲在一個名為mysql的數據庫中。其中主…

附近有什么?8款可以查周邊的App

如今科技發達的時代,手機的功能不僅僅只是能通訊聊天,而是逐漸的走進了人們的生活中。因為有了APP,我們的生活才更豐富,并且有很多是我們生活中不可缺少的軟件,而這些軟件便是根據手機中的GPS定位系統而來的。簡單來說…

MyEclipse小問題與漢字處理

今天在使用MyEclipse時,遇到工作目錄報錯(如上圖),解決方法如下:找到對應工作區(查看工作區的方法為:單擊File → Switch Workspace 即可)依次打開 .metadata文件夾 → .plugins文件夾 → org.eclipse.core.runtime文件夾 → .set…

關系數據庫設計及優化原則

一直以來就想總結一下自己這么多年來在關系數據庫上積累的經驗。奈何自己是一個比較懶的人一直不想動手去寫。扎克伯格曾說過:“想做一件事的話,最好的辦法就是先開始”。索性就先寫一點東西,這些東西不會太長,自然也不會包括太多…

java B2B2C springmvc mybatis電子商務平臺源碼-消息隊列之RocketMQ

RocketMQ出自阿里公司的開源產品,用 Java 語言實現,在設計時參考了 Kafka,并做出了自己的一些改進,消息可靠性上比 Kafka 更好。RocketMQ在阿里集團被廣泛應用在訂單,交易,充值,流計算&#xff…

VSCode同步設置

2022/4/1 更新 剛剛發現還有人在看這篇文章,這里更新一下,VSCode 從1.48版本開始已經內置了同步功能,可以不用再使用Settings Sync插件了。 點擊左下角的用戶或者設置的 Sign in to Sync Setting,使用GitHub或者Microsoft賬戶登…

配置三臺服務器組成的ELK集群(二)

上一篇里主要是介紹了ES和ES-Head的安裝過程,這一篇繼續介紹ELK集群的其他核心組件安裝過程。 五、安裝Logstash: 本案的Logstash安裝在10.113.130.117上;燃鵝,Logstash也可以利用多臺組成集群,如果未來單臺處理不過來…

Discuz X3.2源碼解析 discuz_application類(轉自百度)

discuz_application在/source/class/discuz/discuz_application.php中。 discuz_application繼承自抽象類discuz_base discuz_application主要實現對運行環境、配置、輸入、輸出、數據庫、設置、用戶、session、移動模塊、計劃任務、手機預覽等方面的初始化。 instance()函數來…

.NET性能優化-是時候換個序列化協議了

計算機單機性能一直受到摩爾定律的約束,隨著移動互聯網的興趣,單機性能不足的瓶頸越來越明顯,制約著整個行業的發展。不過我們雖然不能無止境的縱向擴容系統,但是我們可以分布式、橫向的擴容系統,這聽起來非常的美好&a…

Kubernetes-基于Helm安裝部署高可用的Redis

1、Redis簡介 Redis是一個開放源代碼(BSD許可證)的代理,其在內存中存儲數據,可以代理數據庫、緩存和消息。它支持字符串、散列、列表、集合和位圖等數據結構。Redis 是一個高性能的key-value數據庫, 它在很大程度改進了…

Vue 深度監聽和初始綁定

vue的監聽屬性普通方式無法監聽對象內部屬性的改變,并且初始化時不會監聽數據對象。 vue為監聽屬性提供了一種對象方法 watch: {option.size: {// handler為默認執行的方法handler (newValue, oldValue) {this.size newValue},// 立即執行handler方法…

markdown流程圖畫法小結

markdown流程圖畫法小結markdown畫圖流程圖 最簡單的流程圖為例mermaid! graph TD A --> B //在沒有(),[].{}等括號的情況之下,圖標默認名字就是字母 A --> C C --> D B --> D 給圖標添加名字,改變只有矩陣圖形,在箭頭上添加文字…

hihocoder 1689 - 推斷大小關系(圖論+二分)

題目鏈接 https://vjudge.net/problem/HihoCoder-1689有N個整數A1, A2, ... AN&#xff0c;現在我們知道M條關于這N個整數的信息。每條信息是&#xff1a;Ai < Aj 或者 Ai Aj 小Hi希望你能從第一條信息開始依次逐條處理這些信息。一旦能推斷出A1和AN的大小關系就立即停止。…

32歲京東畢業程序員,走投無路當了外企外包,閑得心里發慌,到點下班渾身不自在!...

??當一位京東程序員進入外企當外包會怎么樣&#xff1f;順利躺平&#xff0c;實現wlb&#xff08;工作生活平衡&#xff09;嗎&#xff1f;未必&#xff0c;因為人是一種很奇怪的動物。這位網友說&#xff1a;32歲京東畢業程序員&#xff0c;找了幾個月工作一直沒有合適的&am…

SpringBoot+Shiro學習(四):Realm授權

上一節我們講了自定義Realm中的認證&#xff08;doGetAuthenticationInfo&#xff09;&#xff0c;這節我們繼續講另一個方法doGetAuthorizationInfo授權 授權流程 流程如下&#xff1a; 首先調用Subject.isPermitted/hasRole接口&#xff0c;其會委托給SecurityManager&#x…

Git放棄文件修改

已提交 # 撤銷提交&#xff0c;保留修改內容 git reset <commit_id># 撤銷提交&#xff0c;不保留修改內容 git reset --hard <commit_id>已暫存文件 # 撤銷單個文件暫存 git reset HEAD <filename># 撤銷所有文件/文件夾暫存 git reset HEAD .已跟蹤未暫存…

[LeetCode][Java] Unique Paths II

題目&#xff1a; Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How many unique paths would there be? An obstacle and empty space is marked as 1 and 0 respectively in the grid. For example, There is one obst…

lua windows下編譯

從Lua5.1開始官方給出的文件只有源代碼和makefile文件了&#xff0c;官網給出的bulid方式也是在linux平臺&#xff0c;如果只是想找個庫使用下可以到這里來下載&#xff1a;http://joedf.ahkscript.org/LuaBuilds/ &#xff0c;如果需要自定修改庫配置的話&#xff0c;就需要自…

XAML 創建瀏覽器應用程序

XAML 創建瀏覽器應用程序XAML 創建瀏覽器應用程序作者&#xff1a;WPFDevelopersOrg - 驚鏵原文鏈接&#xff1a;https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/app-development/wpf-xaml-browser-applications-overview?viewnetframeworkdesktop-4.8框架使用.NET40&…

Git 合并分支選項 --squash 合并提交歷史

git merge --squash <branchname>--squash選項的含義是&#xff1a;本地文件內容與不使用該選項的合并結果相同&#xff0c;但是不提交、不移動HEAD&#xff0c;因此需要一條額外的commit命令。其效果相當于將another分支上的多個commit合并成一個&#xff0c;放在當前分…