首页
学习
活动
专区
工具
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.1K63

重点内容回顾-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.3K10

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

DRF框架学习(三)

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

1.1K20

安装 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.4K20

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 的基本内容到这边也基本结束了,希望你能有所收获。

2K20

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

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

2K40

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是相同的。”

65410

Django Swagger文档库drf-spectacular

方法的显式列表替换发现的auth description:替换发现的文档字符串 summary:一个可选的短的总结描述 deprecated:将操作标记为已弃用 tags:覆盖默认标记列表 exclude:设置为True以schema...自定义认证方式 在项目中我们使用了JWT作为登录认证,drf-spectacular只对Session、Basic、Token做了适配 rest_framework.authentication.SessionAuthentication...因为我们在DEFAULT_AUTHENTICATION_CLASSES中配置了两种认证方式,因此页面就会显示两种认证方式 BUG 目前使用中存在一个BUG,就是对于read_only字段,按照我们的理解就是在查询请求是返回给客户端...,创建时在请求体中不需要包含。...在默认生成的swagger界面上,我们看到的情况与理解的一样,对于JSON参数的请求是没有问题的,我们只需要输入必填的字段就可以了,但是如果是form-data参数,虽然显示的依然不包含read_only

1.7K20
领券