首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第 16 篇:别再手动管理接口文档了

作者:HelloGitHub-追梦人物 大多数情况下,开发的接口都不是给开发这个接口的人用的,所以如果没有接口文档,别人就无法知道有哪些接口可以调用,即使知道了接口的 URL,也很难知道接口需要哪些参数...接收的参数(包括 URL 中的路径参数查询参数;HTTP 请求头的参数;HTTP 请求体等参数)。 接口返回的内容。...查询过滤参数也是可以这样设置的,例如先来看一下 GET /posts/ 的参数: 可以看到用来过滤文章列表的参数都没有说明,这些字段都定义在 PostFilter 中,我们来改一下代码,添加必要的说明信息后再去文档中看看效果吧...先来看 GET /posts/archive/dates/,它对应的 action 是 list_archive_dates,由于 action 默认会它所在的视图集中继承一些属性, drf-yasg...但是 drf-yasg 还是不够聪明,当它去解析列表接口可能的参数时,顺便又把 PostFilter 中的字段也一并解析了,这是用来过滤博客文章的,显然不能用于过滤评论列表,我们需要将这些无关参数移除,

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    DRF框架中的英文单词

    DRF框架中的英文单词 1. prefix/'prifɪks/前缀,我们在路由配置的时候经常看见这个单词。在flask中,我们可以在设置url的时候为了区别视图,在类似功能的url全部加一个前缀。...4. filter/'fɪltɚ/过滤,我们在DRF框架的高级功能中,就有过滤这一项。可以在url地址中传参数,我们进行过滤。 5....18. urlpatterns这其实不是一个单词,我们只是将url和patterns(模式)组合了一下。我们用来表示路由的url的路由列表。但是pattern在计算机中通常用来表示模式。 19....20. model/'mɑdl/模型,我们在很多的时候都用到了这个单词,在DRF框架我们在下面的情况中用到了这个单词。指明该序列化器处理的数据字段模型类BookInfo参考生成。...32. router/'rʊtɚ/路由器,我们指的可不是路由器了,它指的也不是视图函数,而是封装了视图函数和请求的url的映射关系的一个东西。 33.

    1.7K30

    第 9 篇:实现分类、标签、归档日期接口

    django-rest-framework 将常用 HTTP 请求的状态码常数预定义 status 模块里,使用预定义的变量不是直接使用数字的好处一是增强代码可读性,二是减少硬编码。...对于这样的场景,我们可以在请求 API 时加上查询参数,django-rest-framework 解析查询参数,然后全部文章列表中过滤查询所指定的文章列表再返回。..., DjangoFilterBackend 会依据 filterset_class(这里是 PostFilter)中定义的过滤规则来过滤查询结果集。...可以看到右上角多了个过滤器(红框圈出部分)。 点击会弹出过滤参数输入的交互面板,在这里可以交互式地输入查询过滤参数的值。...例如选择如下的过滤参数,得到查询URL 为: http://127.0.0.1:10000/api/posts/?

    2.6K30

    Django REST Framework

    代表一个资源,一个资源应该是一个名词 动作有HTTP的methode方法提供 URL应该包含版本信息,版本信息也可以放在HTTP协议中 过滤信息,使用URL参数代表过滤 返回值: 每一个返回代码都有具体特定含义...实验步骤 创建project DRF2 创建app MySer settingsserializer的类型的参数 read_only: 仅用于序列化输出 write_only: 反序列化输入 required...构造方法 Serializer(instance=None, data=empty, **kwarg) 反序列化 验证 is_valid: 验证数据是否合法,返回boolean 在使用外部传入的数据之前...,必须使用此函数进行验证 如果验证失败,返回数据错误异常 validated_data: 经过验证后的数据,存入此结构 视图 DRF的视图处理任务,处理流程等跟Django基本一致 此视图基本是django...- lookup_field:查询条件字段,默认为pk - get_queryset: 返回查询结果集集合,经常需要重写 - get_serializer_class:

    2.2K63

    重点内容回顾-DRF

    不是说你错,在这件事上你占理,这件事你想的没错,只是它不值得你去花费如此多的精力罢了。...) c.过滤参数可以放在查询字符串中; d.响应数据返回&响应状态码;(200获取或修改成功/201新增成功/204删除成功/404资源不存在/400客户端请求有误/500服务器错误) e.响应数据格式...数据库查询 属性: queryset(指定视图所使用的查询集) 方法: get_queryset返回视图所使用的查询集 get_object视图所使用的查询集中查询指定的对象,默认根据pk进行查询。...其他功能 过滤、分类 通常GenericAPIView配合Mixin扩展类进行使用 5.5.2.3Mixin扩展类 DRF框架提供了5个扩展类,封装了通用增删改查的流程。...过滤:需要先安装django-filter并进行注册设置,再在视图中通过 filter_fields设置过滤字段。

    2.4K20

    DRF进阶之DRF视图和常用功能

    常用属性: request.data:返回POST提交的数据,与request.POST类似 request.query_params:返回GET URL参数,与request.GET类似 浏览器get...JWT 与普通Token一样,都是访问资源的令牌,区别是普通Token服务端验证token信息要查询数据库验证,JWT验证token信息不用查询数据库,只需要在服务端使用密钥效验。...与普通Token一样,都是访问资源的令牌,区别是普通Token服务端验证token信息要查询数据库验证,JWT验证token信息不用查询数据库,只需要在服务端使用密钥效验。...全局urls.py配置认证接口URL: django_drf/urls.py from django.contrib import admin from django.urls import path...sex=%E7%94%B7 搜索和排序 DRF提供过滤器帮助我们快速对字段进行搜索和排序 继续修改app视图中新增过滤字段: myapp/views.py from rest_framework.viewsets

    4.6K10

    DjangoRestFramework,restful规范、APIview、解析器组件、Postman等

    api/Person/4 HTTP/1.1 X-HTTP-Method-Override: PUT         上面代码中,X-HTTP-Method-Override指定本次请求的方法是PUT,不是...比如,/articles这个 URL 就是正确的,下面的 URL 不是名词,所以都是错误的。...2.6 过滤信息(filtering,或称查询参数)       如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数过滤返回结果。       下面是一些常见的参数。 ?...animal_type_id=1:指定筛选条件       参数的设计允许存在冗余,即允许API路径和URL参数偶尔有重复。比如,GET /zoo/ID/animals 与 GET /animals?...更好的做法是,除了第一级,其他级别都用查询字符串表达。 GET /authors/12?categories=2       下面是另一个例子,查询已发布的文章。你可能会设计成下面的 URL

    2.5K20

    Django rest Framework入门 五 :认证、权限、限流、分页和过滤

    ordering=title 过滤器 所谓过滤其实就是在API请求的时候加上一些参数,限制返回的结果,比如只查询id为1的书本信息,或者查询id大于2小于5的书本信息。...name=袁隆平 虽然这种方法很简单就能实现过滤的功能,但是也如上面的两个例子展示的那样,只能实现很简单的过滤,在过滤的时候必须明确地指定需要过滤参数和对应的值,没办法搜索一个范围,比如我想搜索id...而且对于诸如时间这样的数据类型,这种简单的过滤器也只能按照字符串处理,不能按照时间格式来处理。 高级应用 过滤器的高级应用需要配置多种数据类型的处理方式和自定义一个过滤器类。...title__startswith=天 过滤器的高级使用基本就是这样 分页 分页其实就是把数据库中的数据分批返回给请求者,不是一次性把所有的数据都返回给请求者,这样容易出问题,比如数据库中商品表有一千万条数据...PNPG class PageNumberPagination(PNPG): ''' 自定义分页类 ''' page_query_param = 'page' # 前端查询某一页的参数

    7510

    DRF框架学习(三)

    补充知识点: 1.类视图对象有一个属性: self.kwargs,它是一个字典,保存的是url地址中提取的所有命名参数。...它的作用:比如我们定义了一个视图,没有形参接收传递的参数,那么我们可以使用 self.kwargsurl地址中提取我们需要的数据。...get_object视图所使用的查询集中查询指定的对象,默认根据pk(查询)进行查询。...其他功能: a)过滤 b)分页 补充知识点: 查询的时候我们想不根据主键pk查询,而是根据我们的需求查,那么可以根据修改 lookup_field(值改为我们要查询的字段的名称)的值来解决需求。...lookup_url_kwarg指定查询集获取对象时,url地址中提取的参数的名称。 注意:经常配合Minxin扩展类来使用。

    1.2K20

    安装 Django REST Framework

    serializers.ModelSerializer): class Meta: model = User fields = ['id', 'username', 'email']在上面的示例中,我们rest_framework...generics.ListAPIView): queryset = User.objects.all() serializer_class = UserSerializer在上面的示例中,我们rest_framework...我们指定了我们想要返回的所有用户的查询集,并指定了用于序列化数据的序列化器。创建路由路由是将URL映射到视图的一种机制。在DRF中,我们可以使用Django的URLConf和DRF的路由器来定义路由。...下面是一个简单的路由器示例,用于将URL /users/ 映射到UserList视图:from django.urls import pathfrom .views import UserListurlpatterns...上面的示例只是DRF的入门示例。DRF有很多其他功能,例如身份验证、权限管理、限速、过滤、分页等等。您可以在DRF的官方文档中找到所有这些功能的详细信息。

    1.5K20

    python测试开发django-169.过滤器django-filter 入门使用

    前言 在管理后台查询的时候,经常有需要查询包含某个内容,按时间段查询,或者商品价格大于多少,小于多少各种查询条件。 django-filter 过滤器专门解决这种查询的问题。...python:3.5、3.6、3.7、3.8 django:2.2、3.0、3.1 DRF : 3.10+ 简单入门 Django-filter 提供了一种基于用户提供的参数过滤查询集的简单方法。...要按request对象过滤查询集,只需覆盖该 FilterSet.qs属性。...如果传递了一个可调用对象,它将以 request 为唯一参数进行调用 。这允许您执行相同类型的基于请求的过滤,而无需求助于覆盖FilterSet....过滤器查找类型“精确”是隐式默认值,因此永远不会添加到过滤器名称中。在上面的示例中,发布日期的确切过滤器是`release_date`,不是`release_date__exact`。

    2.2K20

    用django写接口(实战篇)

    接口分页效果 我们可以看到接口返回的信息还包含了前一页和后一页的 url不是很人性化 接口数据多条件筛选 目前我们的接口要查找特定的信息只能通过 id 来查找,这肯定是不够完善的,这部分将设置接口的多条件查询...但是有个问题就是只能精确查询才可以,如果你输入的参数不完整,就查询不到,接下来,我们尝试着完成模糊查询。...类来写 class PostFilter(django_filters.rest_framework.FilterSet): # 定义进行过滤参数,CharFilter 是过滤参数的类型,过滤参数类型还有很多...,其中筛选的参数在前面设置了筛选条件,则根据筛选条件来执行, # 如果为指定筛选条件,则按照精确查询来执行 class Meta: model = Post...绑定我们自己的认证类即可返回我们需要的字段值啦~ DRF 的基本内容到这边也基本结束了,希望你能有所收获。

    2.1K20

    django优雅的实现软删除,支持Admin和DRF的软删除

    同样的,DRF对外操作的其他接口,如查询,修改操作,就不允许找到已经软删除的数据。 自带的Admin 既然是超级管理后台,那么就允许操作任何数据,包括已经软删除的,不是列表找不到软删除的数据。...简而言之: drf找不到删除的数据,admin需要全部数据 drf和admin删除数据都是软删除 解决方案 DRF Django Manager 赋予了 Django的模型(Model)中操作数据库的能力...,我们还需要将接口删除的操作,进行软删除,不是真删除。...即: drf找不到删除的数据 drf执行删除是软删除 Admin 首先再刚刚代码基础上,我们启用Admin,进入后台看看效果。...可以发现,由于模型Manager的加持,直接把is_deleted的数据一并过滤了。但是我们并不想如此。 所以第一反应,就是去注册模型的地方,重写模型的查询

    2.3K40

    DRF二级视图GenericAPIView

    如果您要覆盖视图方法,请务必调用get_queryset()不是直接访问此属性。 serializer_class 应该用于验证和反序列化输入以及序列化输出的序列化器类。...lookup_url_kwarg 应该用于对象查找的 URL 关键字参数URL conf 应包含与此值对应的关键字参数。如果未设置,则默认使用lookup_field....过滤 filter_backends 应用于过滤查询集的过滤器后端类列表。默认值与DEFAULT_FILTER_BACKENDS设置相同。...详情视图使用 get_object(self) 返回详情视图所需的模型类数据对象,默认使用lookup_field参数过滤queryset。 在视图中可以调用该方法获取详情信息的模型类对象。...是相同的,而后面的查询一条数据详情,修改一条已有数据,删除一条数据的URL是相同的。”

    69810
    领券