有时,在访问接口时,需要的是符合一定条件的数据。此时可以通过过滤来实现,Django Rest framework中,可以使用 django-fitlter 来实现过滤功能。在使用该功能前,需要提前安装和注册 django-filter。

在终端输入以下内容完成 django-filter 的安装:

pip install django-filter
在配置文件中配置以下内容:

INSTALLED_APPS = [
    ...
    'django_filters',  # 注册应用
]
REST_FRAMEWORK = {
    'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',)
}
在视图中添加 filter_fields 属性,指定可以过滤的字段:

class StudentViewSet(ModelViewSet):
    queryset = StudentsModel.objects.all()
    serializer_class = StudentsSerializer
    filter_fields = ('s_age')
此时,可以通过访问 http://127.0.0.1:8000/api/students/?s_age=11 来获取所有年龄为 11 的学生信息。

通过限流可以限制用户访问接口的频率,起到防止用户恶意访问的作用,过滤功能则是对数据的进一步处理,筛选出符合用户需求的数据或者按照用户的需求,实现返回诸如按一定顺序排列的数据等。

 

dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。