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

第 5 篇:用视图集,简化你的代码

因此,django-rest-framework 引入了视图集(Viewsets),把对同一个资源的不同操作,集中一个类中。...同样的,针对 Web 开发中的常见逻辑,django-rest-framework 也提供了通用视图集,进一步简化开发工作。...要注意一点的是,视图集基类提供的是除资源操作以外的通用逻辑(例如 HTTP 请求预处理、HTTP 响应后处理、认证、鉴权等),而对于资源的操作(如序列化、更新、删除资源等)则放在相应的 Mixin 混入类里...别急,这里只是演示一下如何从视图集生成视图函数并绑定 URL,这样能够帮助你更好地理解视图集的工作方式。...视图集最终会被转为多个视图函数,那么这个视图函数的名字是什么呢?django-rest-framework 的默认生成规则是 basename-action。

80510

第 15 篇:接口的单元测试

django 单元测试框架的使用方式。...这里我们再对 djnago 的测试框架做一个回顾整体回顾,至于如何编写和运行测试,后面将会进行详细的讲解,如果想对 django 的单元测试做更基础的了解,推荐回去看看关于测试的 3 篇教程以及 django...下面是 djnago 单元测试框架的一些要点: django 的单元测试框架基于 Python 的 unittest 测试框架。...HighlightedCharField 涉及一些高级操作,主要是因为 to_representation 方法中涉及对 HTTP 请求request 的操作。...线上可能出现各种奇奇怪怪的问题,这些问题可能并没有写成测试案例,所以也就没有测试。但无论如何,目前我们已经进行了较为充分的测试,就可以考虑发布一个版本了。

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

第 12 篇:加缓存为接口提速

配置缓存 django 为我们提供了一套开箱即用的缓存框架,缓存框架对缓存的操作做了抽象,提供了统一的读写缓存的接口。...drf-extensions Cache django 的缓存框架比较底层,drf-extensions 在 django 缓存框架的基础上,针对 django-rest-framework 封装了更多缓存相关的辅助函数和类...例如我们可以把 API 请求的 URL 作为缓存的 key,这样同一个接口请求将返回相同的缓存内容。...但是在更为复杂的场景下,不能简单使用 URL 作为 key,比如即使是同一个 API 请求,已认证和未认证的用户调用接口得到的结果是不一样的,所以 drf-extensions 使用 KeyConstructor...cache_response 装饰器 这个装饰器用来装饰 django-rest-framework 的视图(单个视图函数、视图集中的 action 等),被装饰的视图将具备缓存功能。

1.1K40

drf之请求、响应、视图

类似于Django中标准的request.POST和 request.FILES属性,但提供如下特性: 1 包含了解析之后的文件和非文件数据 2 包含了对POST、PUT、PATCH请求方式解析后的数据...drf 提供了Renderer 渲染器,用来根据请求头中的Accept(接收数据类型声明)来自动转换响应数据对应格式。...APIView与View的不同之处在于: 传入视图方法中的是REST framework的Request对象,而不是Django的HttpRequeset对象; 视图方法可以返回REST framework...在APIView中仍以常规的类视图定义方法来实现get() 、post() 或者其他请求方式的方法。例如使用APIView简单的实现五个增删查改的API接口。...3.2 action 在视图集中,我们可以通过action对象属性来获取当前请求图集时的action动作是哪个。除了默认的方法动作外,还可以添加自定义动作。

2.1K20

python教程

用我们的序列化来写常规的Django视图 让我们看看,使用我们新的序列化类,我们怎么写一些API视图。此刻,我们不会使用REST框架其他特性,仅仅像写常规Django视图一样。...2, 请求与响应 从这开始,我们将接触REST框架的核心。让我们来介绍一系列必要的搭建模块。...请求对象 REST框架介绍了一个请求(Request)对象,它扩展了常规的HttpResquest,并且,提供更灵活的请求解析。...', 'PAGE_SIZE': 10 } 注意:REST框架的分页设置(settings)是一个单独的字典,叫'REST_FRAMEWORK',它可以帮我们区分项目中的其他配置。...明确绑定视图集URL 我们定义URLConf的时候,处理方法只绑定了动作。为了看看发生了什么,我们必须从我们的视图集(ViewSets)创建一个视图集合。

5K10

Python 如何开发出RESTful Web接口,DRF框架助力灵活实现!

至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,App有App的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可。...Django Rest Framework 正是基于Rest架构风格设计的一款 后端API 框架。...操作资源一般都会涉及增删改查,我们提供请求方式来标识增删改查动作。.../users - post请求:新增一个用户 https://api.github.io/users/1 - put请求:整体修改ID为1的用户 https://api.github.io/users/...DRF 简介 Django REST framework 是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用。

36820

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

Post)的创建日期(已去重),日期都是 Python 的 date 对象,精确月份,降序排列。...django-rest-framework 默认只能识别标准命名的视图集方法并将其注册为 API,但我们可以添加更多非标准的 action,而为了让 django-rest-framework 能够识别这些方法...django-rest-framework 将常用 HTTP 请求的状态码常数预定义 status 模块里,使用预定义的变量而不是直接使用数字的好处一是增强代码可读性,二是减少硬编码。...注意红框圈出部分,django-rest-framework API 交互后台会识别到额外定义的 action 并将它们展示出来,点击就可以进入相应的 API 页面。...对于这样的场景,我们可以在请求 API 时加上查询参数,django-rest-framework 解析查询参数,然后从全部文章列表中过滤出查询所指定的文章列表再返回。

2.6K30

全栈“食”代:用 Django + Nuxt 实现美食分享网站(一)

Django 作为 Python 社区最受欢迎的 Web 框架之一,凭借其高度抽象的组件和强大方便的脚手架,将快速且流畅的开发体验演绎到了极致。...而 Nuxt 作为从 Vue.js 进化而来的前端框架,能够轻松胜任复杂的 SPA(单页应用)开发。两者相遇,能够擦出怎样的火花?...,包括前端如何通过发起 HTTP(S) 请求从后端获取数据 学习目标 学完这篇教程后,你将: 了解用 pipenv 工具管理 Python 依赖 学会用 Django REST Framework 快速开发...我们接着安装 Django “三件套”: Django: Django 框架本身,提供了丰富且强大的服务器开发组件; DRF (Django Rest Framework):Django 框架的超级搭档...● 一杯茶的时间,上手Django框架开发 ● 从零部署:用Vue和Express实现迷你全栈电商应用(五) ● 用Vue+ElementUI搭建后台管理极简模板 ·END·

1.5K30

第 7 篇:文章详情的 API 接口

作者:HelloGitHub-追梦人物[1] 文中所涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库[2] 一旦我们使用了视图集,并实现了 HTTP 请求对应的 action 方法(...对应规则的说明见 使用视图集简化代码),将其在路由器中注册后,django-restframework 自动会自动为我们生成对应的 API 接口。...贴心的是,django-rest-framework 已经帮我们把 retrieve 的逻辑在 mixins.RetrieveModelMixin 里写好了,直接混入视图集即可: class PostViewSet...django-rest-framework 以该字段的值从 get_queryset 返回的资源列表中筛选出单个资源对象。...那么如何在视图集中区分不同的 action 动作呢?视图集有一个 action 属性,专门用来记录当前请求对应的动作。

1K30

DRF 视图组件

demo ReadOnlyModelViewSet视图集 两个视图集总结: 其他图集 ViewSet GenericViewSet ViewSetMixin 总结 补充 视图集中定义附加action动作...action属性 DRF 视图组件 DRF框架提供了很多通用的视图基类与扩展类,上篇使用的APIView是比较偏Base的,视图的使用更加简化了代码,这里介绍一下其他视图的用法 Django...例如,创建绑定'GET'和'POST'方法的具体视图 “列表”和“创建”动作… = MyViewSet视图。...As_view ({'get': 'list', 'post': 'create'}) 总结 补充 视图集中定义附加action动作 在视图集中,除了上述默认的方法动作外,还可以添加自定义动作。...,我们可以通过action对象属性来获取当前请求图集时的action动作是哪个。

90110

Django Rest Framework-介绍

区别与其他架构风格的最本质属性 对于REST这种面向资源的架构风格,有人提出一种全新的结构理念,即:面向资源架构(ROA:Resource Oriented Architecture) Django...REST framework特性 直观的 API web 界面 多种身份认证和权限认证方式的支持 内置了 OAuth1 和 OAuth2 的支持 内置了限流系统 根据 Django ORM 或者其它库自动序列化...跨域时,引发发送多次请求 路径,网络上任何东西都是资源,均使用名词表示(可复数) https://api.example.com/v1/zoos https://api.example.com/v1...400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。...410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。

1.8K40

重点内容回顾-DRF

5.2Restful API接口设计风格 关键点: a.url地址尽量使用名词,不要使用动词; b.请求url地址采用不同的请求方式执行不同的操作;(POST新增/GET获取/PUT修改/DELETE删除...request.data保存的是解析之后的请求体的数据,并且已经解析成了字典或类字典,相当于包含Django原始request对象中的request.body/request.POST/request.FILES...5.6.4视图集中添加额外的处理方法 1.直接在视图集定义额外的处理方法即可 2.在进行url配置的时候也要指定请求地址请求方式和处理函数之间的对应的关系。...REST_FRAMEWORK = { 'EXCEPTION_HANDLER': 'booktest.utils.exceptions.exception_handler' } 6.3其他 认证:...团队开发注意事项 浅谈密码加密 Django框架中的英文单词 Django中数据库的相关操作 DRF框架中的英文单词

2.4K20

不会DRF?源码都分析透了确定不来看?

官网:https://www.django-rest-framework.org/ drf安装默认安装的最新版本,如果django版本过低会自动升级3.x版本 版本支持对应关系 示例...序列化: 在Django中获取到的数据默认是模型对象(QuerySet对象),但是模型对象数据无法直接提供给前端或别的平台使用,我们需要把数据进行序列化,变成字符串或json数据提供给前端或其他平台;...反序列化: 前端或其他平台传入数据后台,比如是json格式字符串,后端需要存入数据库,需要转换成python中的对象,然后处理存入数据库; 总结: python对象 -----》json格式字符串...来了post请求就走post方法,过程如何?...'rest_framework.request.Request'> 老的: 三大认证如何执行?

1.3K10

【愚公系列】2022年04月 Python教学课程 71-DRF框架之内置路由

文章目录 一、路由 1.SimpleRouter 1.1 基本使用 1.2 合并使用 1.3 额外操作的路由 2.DefaultRouter 一、路由 对于视图集ViewSet,我们除了可以自己手动指明请求方式与视图方法...REST framework提供了两个router SimpleRouter DefaultRouter 1.SimpleRouter 1.1 基本使用 from rest_framework import...请注意,如果视图集不包含属性,则必须在注册视图集时进行设置。...例如: router = SimpleRouter(trailing_slash=False) 尾随斜杠在 Django 中是约定俗成的,但在其他一些框架(如 Rails)中默认不使用。...你选择使用哪种风格很大程度上取决于你的偏好,尽管一些javascript框架可能会期望特定的路由风格。 路由器将匹配包含除斜杠和句点字符之外的任何字符的查找值。

92820

8.寻光集后台管理系统-用户管理(增删改查)

REST框架提供多种开箱即用的身份验证方案,后面项目实战时,我们再讨论。 权限验证 与身份验证,限流一起,权限决定是否应该授予或拒绝访问请求。...如何确定权限 DRF中权限始终定义为权限列表。在运行视图的主体之前,检查列表中的每个权限。...REST framework已经实现了分页api。它支持: 将分页的链接作为响应内容的一部分,这是默认的方案。 响应头中包含分页链接,如Content-Range或Link。...django_paginator_class - django框架分页类。默认使用django.core.paginator.Paginator。 page_size - 表示一页数据条数的数值。...:8000/users/ GET请求:http://127.0.0.1:8000/users/ POST请求(无参数):http://127.0.0.1:8000/users/ POST请求(有参数

1.8K30

Django REST Framework-视图集(一)

Django REST Framework 中,视图集(Viewset)是一种简化了视图函数(View Function)的开发方式,它可以让开发者更快速、更方便地创建 RESTful API。...视图集的基本用法在 Django REST Framework 中,视图集是一个处理 HTTP 请求的类,它封装了一组相关的视图函数,包括列表视图(List View)、详情视图(Detail View...例如,我们可以定义一个名为 BookViewSet 的视图集类,它对应的模型是 Book,对应的序列化器是 BookSerializer:from rest_framework import viewsetsfrom...queryset = Book.objects.all() serializer_class = BookSerializer在这个例子中,我们使用 viewsets.ModelViewSet 类作为基类来定义视图集类...除了基本的 CRUD 操作外,视图集还支持其他一些常用的操作,例如搜索、排序、过滤、分页等。在下面的章节中,我们将详细介绍如何使用视图集进行这些操作。

43582

跟着官方文档学Python——Django Rest framework

跟着官方文档学Python Django Rest framework 这周将会持续更新跟着官方文档学Python系列文章,主要是围绕web框架以及其他后端组件的官方文档展开学习。...前后端分离[把前端的界面效果(html,css,js分离另一个服务端,python服务端只需要返回数据即可]。前端形成一个独立的网站,服务端构成一个独立的网站 什么是API?...通过GET/ POST/ PUT/ DELETE来获取/新建/更新/删除资源。一般使用JSON格式返回数据。大多数web框架都有相应的插件支持RESTful API。...Django Rest framework Django REST framework是一个内置在django里面的子应用,可以快速的开发REST API接口应用。...'rest_framework', ] 在项目中如果使用rest_framework框架实现API接口,主要有以下三个步骤: 将请求的数据(如JSON格式)转换为模型类对象 通过模型类对象进行数据库操作

2.3K10
领券