美文网首页工作生活
第五章 DRF权限分页查询排序访问限制

第五章 DRF权限分页查询排序访问限制

作者: 7d4b0b51c9d4 | 来源:发表于2019-07-03 21:35 被阅读0次

    分页

    可在settings中设置默认分页配置

    也可以自定义分页类

    http://127.0.0.1:8000/api/grades/?page=2&limit=6

    limit是每页的最大个数

    有时候我们获取资源时,需要获取尽可能多的记录,这时候可以使用DRF-extensions

    pip installdrf-extensions

    经过反复试验,均已失败告终,而且这个limit=max  好像也只是取max_page_size 的值,如果真的不分页建议自己写个@list_route方法,方法内容直接超list方法即可,去掉里面的分页功能

    权限认证

    authentication_classes

    permission_classes

    只有管理员才能访问该接口

    过滤搜索

    安装django-filter

    pip install django-filter

    一定要注意: 安装的是django-filter  填写的app名称是django_filters

    编写 Filter类

    注意:这里type是一对一关系的属性,写法是profile__type (两个下划线)

    Filter是过滤,根据过滤类代码,可根据name/type来进行过滤

    http://127.0.0.1:8000/api/grades/?name=高四&type=2

    Search

    search_fields = ('name', 'profile__email')

    search_fields = ('^name', 'profile__email')

    默认的为模糊匹配

    http://127.0.0.1:8000/api/grades/?search=zhaor

    '^' Starts-with search.    开头

    '=' Exact matches.       完全匹配

    '@' Full-text search. (Currently onlysupported Django's MySQL backend.)   全文搜索

    '$' Regex search.           正则匹配

    排序

    排序很简单,只需要一句话

    http://127.0.0.1:8000/api/grades/?search=zhaor&sort=-name

    sort=name 正序,sort=-name 倒叙。

    Sort关键词可以在setting中设置

    访问限制

    REST_FRAMEWORK 中可设置默认访问限制

    间隔可设置为second, minute, hour or day

    把user 限制在 10/day ,当访问第11次的时候报错

    自定义限速

    比如设置为:

    意思就是:匿名用户可以访问5次,而登陆用户采用的ZRC限制,可以访问8次

    还有一种方式是设置scope

    此时在View中可以直接使用:

    throttle_scope = uploads

    第一章 DRF概述

    第二章 DRF安装与项目创建

    第三章 DRF之View进化论

    第四章 DRF之Router 和 Serializer

    第五章 DRF权限分页查询排序访问限制

    第六章 DRF Linux部署

    第七章 DRF其他知识

    相关文章

      网友评论

        本文标题:第五章 DRF权限分页查询排序访问限制

        本文链接:https://www.haomeiwen.com/subject/oirhhctx.html