首页 > 其他分享 >REST framework:过滤

REST framework:过滤

时间:2024-08-23 22:04:12浏览次数:7  
标签:__ name models REST framework length 过滤 class verbose

一、数据准备

模型类

class UserInfo(models.Model):
    name = models.CharField(max_length=20, verbose_name='用户名')
    pwd = models.CharField(max_length=18, verbose_name='密码')
    email = models.EmailField(max_length=40, verbose_name='邮箱')
    age = models.IntegerField(verbose_name='年龄', default=18)

    def __str__(self):
        return self.name

    class Meta:
        db_table = 't_user'


# 模型Addr关联userinfo,
class Addr(models.Model):
    user = models.ForeignKey('UserInfo', verbose_name='所属用户', on_delete=models.CASCADE)
    mobile = models.CharField(verbose_name='手机号', max_length=18)
    city = models.CharField(verbose_name='城市', max_length=10)
    info = models.CharField(verbose_name='详细地址', max_length=200)

    def __str__(self):
        return self.info

    class Meta:
        db_table = 't_address'

序列化器类

class UserInfoSerializer(serializers.ModelSerializer):

    class Meta:
        model = UserInfo
        fields = '__all__'


class AddrSerializer(serializers.ModelSerializer):

    class Meta:
        model = Addr
        fields = '__all__'

 

视图类

class UserView(ModelViewSet):
    # 指定模型类查询集
    queryset = UserInfo.objects.all()
    # 指定序列化器类
    serializer_class = UserInfoSerializerclass AddrView(ModelViewSet):
    # 指定模型类查询集
    queryset = Addr.objects.all()
    # 指定序列化器类
    serializer_class = AddrSerializer

二、相关配置

对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持

pip install django-filter -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

在配置文件中增加过滤后端的设置

 # 注册应用,
INSTALLED_APPS = [
    ...
    'django_filters', 
]
# 指定过滤器
REST_FRAMEWORK = {
    'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',)
}

 三、过滤器的基本使用

在视图中添加filterset_fields属性,指定可以过滤的字段

class UserView(ModelViewSet):
    # 指定模型类查询集
    queryset = UserInfo.objects.all()
    # 指定序列化器类
    serializer_class = UserInfoSerializer

    filterset_fields = ('name', 'email',)

指定过滤字段之前

 

指定过滤字段之后

 

标签:__,name,models,REST,framework,length,过滤,class,verbose
From: https://www.cnblogs.com/Durant0420/p/18377129

相关文章

  • 什么是布隆过滤器,实现原理是什么?
    背景介绍在互联网中,我们经常遇到需要在大量数据中判断目标数据是否存在的情况。例如,在网络爬虫中,我们需要判断某个网址是否已经被访问过。为了实现这一功能,通常需要使用一个容器来存储已访问过的网址。如果将这些数据直接存储在磁盘中,每次判断都要进行磁盘查询,这将导致大量的I......
  • REST framework:接口文档
    RESTframework通过第三方库可以自动帮助我们生成网页版的接口文档,自动接口文档能生成的是继承自APIView及其子类的视图1、安装依赖RESTframewrok生成接口文档需要coreapi库的支持 pipinstallcoreapi-ihttp://mirrors.aliyun.com/pypi/simple/--trusted-hostmirrors.......
  • NSSCTF [HNCTF 2022 Week1]Interesting_include
    <?php//WEB手要懂得搜索//flagin./flag.phpif(isset($_GET['filter'])){$file=$_GET['filter'];if(!preg_match("/flag/i",$file)){die("error");}include($file);}else{highlight_file(__......
  • 基于nodejs+vue协同过滤算法的音乐推荐系统 [程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,数字音乐已成为人们日常生活中不可或缺的一部分。面对海量的音乐资源,用户往往难以快速找到符合个人喜好的音乐作品。传统的音乐搜......
  • 利用Spring Boot的RestTemplate进行REST客户端开发
    利用SpringBoot的RestTemplate进行REST客户端开发大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,服务之间的通信通常通过RESTAPI来实现。SpringBoot提供了RestTemplate,这是一个用于同步客户端REST请求的类。本文将介绍如何使用Spri......
  • RestSharp 组件第二弹
    安装的版本NuGet\Install-PackageRestSharp-Version106.15.0加入tokenvarclientForSave=newRestClient("http://10.30.35.22:32080/ipms/v1/12/bulletin-board/reportwork/save");varrequestForSave=newRestRequest(Method.POST);vardataToSave=new{   ......
  • Paper Reading: SAFE: Scalable Automatic Feature Engineering Framework for Indust
    目录研究动机文章贡献本文方法整体框架特征生成特征组合关系排序特征组合生成特征特征选择去除无信息特征去除冗余特征复杂度分析实验结果数据集和实验设置对比实验特征重要性比较运行时间特征稳定性不同迭代次数的性能大规模数据集实验优点和创新点PaperReading是从个人角度进......
  • 基于nodejs+vue协同过滤算法的商品推荐系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已成为人们日常生活中不可或缺的一部分。然而,面对海量的商品信息和日益增长的消费者需求,用户往往难以快速找到符合自己兴......
  • 基于nodejs+vue协同过滤算法的体育用品推荐系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网技术的蓬勃发展和体育文化的日益普及,体育用品市场迎来了前所未有的发展机遇。然而,面对市场上琳琅满目的体育用品和消费者日益增长的个性化需求,如......
  • 基于nodejs+vue协同过滤算法的电影推荐系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网的普及和视频流媒体服务的兴起,电影作为大众娱乐的重要组成部分,其数量正以惊人的速度增长。面对浩如烟海的电影资源,用户往往难以快速找到符合自己......