过滤器的基本使用
- 对于列表数据可能需要根据字段进行过滤,我们可以通过添加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',
}
网友评论