yyz notes yyz notes
首页
  • RBAC权限设计
  • 架构图标设计
  • 账号体系
  • python基础
  • python高级
  • python模块
  • python设计模式
  • python数据结构与算法
  • django
  • django-DRF
  • flask
  • 直接设计开源pip包
  • 直接设计开源项目
  • python示例题/脚本
  • python面试题
  • golang基础
  • golang高级
  • golang常用组件
  • gin框架
  • es6
  • javascript
  • react
  • vue
  • TypeScript
  • mysql
  • redis
  • minio
  • elasticsearch
  • mongodb
  • 消息队列
  • 自动化测试
  • 操作系统

    • linux
    • windows
  • nginx
  • docker
  • k8s
  • git
  • ldap
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

益章

可乐鸡翅
首页
  • RBAC权限设计
  • 架构图标设计
  • 账号体系
  • python基础
  • python高级
  • python模块
  • python设计模式
  • python数据结构与算法
  • django
  • django-DRF
  • flask
  • 直接设计开源pip包
  • 直接设计开源项目
  • python示例题/脚本
  • python面试题
  • golang基础
  • golang高级
  • golang常用组件
  • gin框架
  • es6
  • javascript
  • react
  • vue
  • TypeScript
  • mysql
  • redis
  • minio
  • elasticsearch
  • mongodb
  • 消息队列
  • 自动化测试
  • 操作系统

    • linux
    • windows
  • nginx
  • docker
  • k8s
  • git
  • ldap
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • python基础

  • python高级

  • python模块

  • python设计模式

  • python数据结构与算法

  • django

  • django-DRF

    • win环境快速搭建drf项目
    • DRF介绍及快速使用
    • 序列化
    • DRF请求和响应
    • DRF类视图
    • 认证
    • 权限
    • 接口访问控制(限流)
    • 版本
    • 分页
    • 解析器
    • 自定义异常格式
    • 自定义响应格式
    • 过滤
    • 搜索
      • 1. 搜索定义和实现
        • 1.1 搜索定义
        • 1.2、实现
        • 1.3、postman测试结果
    • 排序
  • flask

  • 自己设计开源pip包

  • 自己设计开源项目

  • python小示例

  • python面试题

  • python
  • django-DRF
YiZhang-You
2023-05-20
目录

搜索

# 1. 搜索定义和实现

# 1.1 搜索定义

我们每次在搜索的服务的时候,都是以 http://127.0.0.1:8000/api/game.json?search=QQ ,而且搜索的字段都是我们自己定义好的,后面的搜索 字段必须以 search 定义,不能是其他字段,那这个我们如何在DRF中去实现呐。

# 1.2、实现

说明:其实分两步走,导入搜索的过滤器,然后定义搜索的 字段,搜索的条件就在这几个条件中去查找

from .custom_model_view_set import CustomModelViewSet
from django_filters.rest_framework import DjangoFilterBackend
from .custom_filter import GameFilter
from rest_framework import filters
 
 
class GameView(CustomModelViewSet):
    queryset = Game.objects.all()
    serializer_class = GameSerializer
 
    filter_backends = (DjangoFilterBackend, filters.SearchFilter) # 导入filters.SearchFilter 过滤器
 
    # 过滤
    # filter_fields = ('name', 'status')
    filterset_class = GameFilter
 
    # 搜索字段
    search_fields = ("name", "status")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 1.3、postman测试结果

搜索:http://127.0.0.1:8000/api/game/?search=QQ

搜索status,因为我在 搜索的定义的字段有status:http://127.0.0.1:8000/api/game/?search=1

编辑 (opens new window)
过滤
排序

← 过滤 排序→

最近更新
01
配置yun源
05-24
02
linux-配置python虚拟环境
05-24
03
linux文件目录管理
05-24
更多文章>
Theme by Vdoing | Copyright © 2023-2023 yizhang | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式