美文网首页
Python+Django框架学习(过滤器)

Python+Django框架学习(过滤器)

作者: 彬_哥哥 | 来源:发表于2024-06-04 23:13 被阅读0次
过滤器的基本使用
  • 对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持

pip install django-filter

  • 在项目配置文件中增加过滤后端的设置
INSTALLED_APPS = [
   ......
    # 过滤应用
    'django_filters',
]

# 指定过滤器
    'DEFAULT_FILTER_BACKENDS': [
        'django_filters.rest_framework.DjangoFilterBackend',
    ]
class UserListView(ModelViewSet):
    # 把查询的表赋值给它。表名.objects.all()
    queryset = UserInfoModel.objects.all()
    # 用哪个序列化类。类名
    serializer_class = UserInfoSerializers
    """
    AllowAny:允许所有用户
    IsAuthenticated:仅通过认证的用户
    IsAdminUser:仅管理员用户
    IsAuthenticatedOrReadOnly:认证的用户可以完全操作,否则只能get读取
    """

    permission_classes = (IsAuthenticatedOrReadOnly,)
    # 指定未认证用户限流类型
    throttle_classes = (AnonRateThrottle,)
    # 指定过滤的字段
    filter_fields = ('phone', 'logo')

自定义过滤器类
# 自定义过滤器导入模块
from .filters import UserInfoFilter
# 指定过滤器的类
    filter_class = UserInfoFilter

class UserListView(ModelViewSet):
    # 把查询的表赋值给它。表名.objects.all()
    queryset = UserInfoModel.objects.all()
    # 用哪个序列化类。类名
    serializer_class = UserInfoSerializers
    """
    AllowAny:允许所有用户
    IsAuthenticated:仅通过认证的用户
    IsAdminUser:仅管理员用户
    IsAuthenticatedOrReadOnly:认证的用户可以完全操作,否则只能get读取
    """

    permission_classes = (IsAuthenticatedOrReadOnly,)
    # 指定未认证用户限流类型
    throttle_classes = (AnonRateThrottle,)
    # 指定过滤的字段
    # filter_fields = ('phone', 'logo')
    # 指定过滤器的类
    filter_class = UserInfoFilter
coreapi生成接口文档
  • REST framework通过第三方库可以自动帮助我们生成网页版的接口文档,自动接口文件能生成的是继承ApiView及其子类的视图

pip install coreapi

1.在项目路由文件中配置

导入接口文档模块
from rest_framework.documentation import include_docs_urls

接口文档访问路径

re_path(r'^docs/', include_docs_urls(title='接口文档'))
  • 在项目设置文件中配置
INSTALLED_APPS = [
    ......,
    # 接口文档应用
    'coreapi',
]

REST_FRAMEWORK = {
   ......
    # 接口文档配置
    'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema',

}

相关文章

网友评论

      本文标题:Python+Django框架学习(过滤器)

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