Django框架中的分页和筛选操作

本文介绍了Django框架中的分页设置,包括如何进行请求链接操作。接着探讨了筛选操作及其结果展示。同时,文章还讨论了访问频率限流的全局设置方法,并提到了django-mptt框架的安装和使用。最后,讲解了Django中的中间件以及用户、角色和权限的关系。
摘要由CSDN通过智能技术生成

分页设置

请求链接为 http://127.0.0.1:8000/api/user/?page=2&size=2

class UserPagination(PageNumberPagination):
    page_size = 6
    page_query_param = 'page'
    page_size_query_param = 'size'

在这里插入图片描述

请求链接为 http://127.0.0.1:8000/api/user/?limit=3&offset=6

class UserPagination(LimitOffsetPagination):
    limit_query_param = 'limit'
    offset_query_param = 'offset'

请求链接为 http://127.0.0.1:8000/api/user/?cursor=cD1saXN0

class UserPagination(CursorPagination):
    cursor_query_param = 'cursor'
    page_size = 6
    page_size_query_param = 'size'
    ordering = 'username'

在这里插入图片描述

筛选操作

from rest_framework.filters import SearchFilter, OrderingFilter
from django_filters.rest_framework import DjangoFilterBackend

# 在视图类中添加下列代码
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
filter_fields = ('username',)
search_fields = ('username',)
ordering_fields = ('username', 'id')

结果为
在这里插入图片描述

访问频率限流

from rest_framework.throttling import SimpleRateThrottle


class VisitThrottle(SimpleRateThrottle):
    scope = 'visit'

    def get_cache_key(self, request, view):
        return self.get_ident(request)


class UserThrottle(SimpleRateThrottle):
    scope = 'user'

    def get_cache_key(self, request, view):
        return request.user.username

在全局中设置

REST_FRAMEWORK = {
   
    "DEFAULT_THROTTLE_CLASSES": ['api.throttle.VisitThrottle', 'api.throttle.UserThrottle'],
    "DEFAULT_THROTTLE_RATES": {
   
        "user": '3/m',  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值