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

Django Rest框架:一个路由器的两个视图集

Django Rest框架是一个用于构建Web API的开发框架,基于Django框架的强大功能而设计。它提供了一组用于快速构建、自定义和部署API的工具和功能。

在Django Rest框架中,一个路由器(Router)用于将URL映射到相应的视图集(ViewSet)。视图集是处理请求的核心组件,它封装了各种API操作,例如创建、读取、更新和删除(CRUD)。一个路由器可以注册多个视图集,将不同的URL请求分发给不同的视图集处理。

Django Rest框架的两个视图集通常是指基于不同数据模型的不同视图集。例如,假设我们有一个学生模型和一个教师模型,我们可以使用Django Rest框架的路由器注册两个视图集,一个用于处理学生相关的API请求,另一个用于处理教师相关的API请求。

Django Rest框架的优势包括:

  1. 强大的功能:Django Rest框架提供了丰富的功能和工具,包括序列化、认证、权限控制、过滤、排序、分页等,使开发人员能够快速构建复杂的API。
  2. 灵活的配置:Django Rest框架允许开发人员根据具体需求对API进行灵活的配置和定制,例如自定义序列化器、视图集、路由器等。
  3. 高性能:Django Rest框架通过优化数据库查询和响应处理等方式提供高性能的API服务。
  4. 社区支持:Django Rest框架拥有庞大的开发者社区和活跃的维护团队,可以获得及时的技术支持和更新。

Django Rest框架适用于各种应用场景,特别适合构建RESTful风格的Web API。它可以用于构建各种类型的应用,包括移动应用的后端API、单页面应用的数据接口、微服务架构中的服务之间通信等。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云Serverless Framework:一个无需管理服务器的全托管云开发框架,可用于部署Django Rest框架应用。详情请查看腾讯云Serverless Framework介绍
  • 腾讯云CVM(云服务器):提供灵活可扩展的虚拟云服务器,可用于托管Django Rest框架应用。详情请查看腾讯云CVM产品介绍
  • 腾讯云CLS(云日志服务):用于采集、存储、检索和分析日志数据,可用于监控和分析Django Rest框架应用的日志。详情请查看腾讯云CLS产品介绍
  • 腾讯云CDB(云数据库MySQL版):提供高可用、高性能的托管关系型数据库服务,可用于存储Django Rest框架应用的数据。详情请查看腾讯云CDB产品介绍
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

因此,django-rest-framework 引入了视图集(Viewsets),把对同一个资源不同操作,集中到一个类中。...使用视图集一个更大好处,就是可以配合 django-rest-framework 提供路由器(router),自动生成 API URL,不需要我们再手工将 URL 模式和视图函数绑定了。..., basename='post') Django-rest-framework 提供 SimpleRouter 和 DefaultRouter 两个路由器类,后者是对前者拓展,因此通常情况下都使用后者...视图集自动生成 URL 模式非常简单,只需实例化一个路由器,然后调用其 register 方法,这个方法接收 3 个参数,第一个参数是 URL 前缀,所有从注册图集生成 URL 都会带有这个前缀。...basename 可以不指定,django-rest-framework 会自动从视图集 get_queryset 方法返回结果所关联 model 获取一个默认值,其值为 model 名小写。

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

    REST framework提供了两个router SimpleRouter DefaultRouter 1.SimpleRouter 1.1 基本使用 from rest_framework import...viewset- 视图集类。 (可选)您还可以指定一个附加参数: basename- 用于所创建 URL名称基础。如果未设置,则将根据视图集属性(如果有)自动生成基名。...如果不想为这两个值中任何一个使用默认值,则可以改为向装饰器提供 and 参数。...例如: router = SimpleRouter(trailing_slash=False) 尾随斜杠在 Django 中是约定俗成,但在其他一些框架(如 Rails)中默认不使用。...你选择使用哪种风格很大程度上取决于你偏好,尽管一些javascript框架可能会期望特定路由风格。 路由器将匹配包含除斜杠和句点字符之外任何字符查找值。

    93820

    【DRF】快速入门,使用DjangoRestFrameWork自动生成Restful风格增删改查代码和接口文档!

    ⭐今天教大家使用 Django Rest FrameWork 自动生成Restful风格增删改查代码和接口文档!...⭐参考文章:首页 - Django REST 框架 (django-rest-framework.org)(官方文档)注意:Django Rest FrameWork 是在Django框架下使用以下内容需要先创建一个...Django项目什么是Restful风格:RESTful API 一种流行 API 设计风格安装依赖安装Rest FrameWork 需要满足以下条件:Python (3.6, 3.7, 3.8, 3.9...) # 向路由器中注册视图集urlpatterns += router.urls # 将路由器所以路由信息追到到django路由列表中以下内容在项目目录下 urls.py 配置from django.contrib...(之后文章会介绍到)⭐以上内容只是快速配置 全面API请查阅官方文档:首页 - Django REST 框架 (django-rest-framework.org)⭐如果对你有帮助请给我点个赞吧

    1.5K00

    第 7 篇:文章详情 API 接口

    对应规则说明见 使用视图集简化代码),将其在路由器中注册后,django-restframework 自动会自动为我们生成对应 API 接口。...目前为止,我们只实现了 GET 请求对应 action——list 方法,因此路由器只为我们生成了一个 API,这个 API 返回文章资源列表。...贴心是,django-rest-framework 已经帮我们把 retrieve 逻辑在 mixins.RetrieveModelMixin 里写好了,直接混入视图集即可: class PostViewSet...lookup_field 属性指定资源筛选字段(默认为 pk)。django-rest-framework 以该字段值从 get_queryset 返回资源列表中筛选出单个资源对象。...那么如何在视图集中区分不同 action 动作呢?视图集一个 action 属性,专门用来记录当前请求对应动作。

    1K30

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

    跟着官方文档学Python Django Rest framework 这周将会持续更新跟着官方文档学Python系列文章,主要是围绕web框架以及其他后端组件官方文档展开学习。...大多数web框架都有相应插件支持RESTful API。...Django Rest framework Django REST framework是一个内置在django里面的子应用,可以快速开发REST API接口应用。...'rest_framework', ] 在项目中如果使用rest_framework框架实现API接口,主要有以下三个步骤: 将请求数据(如JSON格式)转换为模型类对象 通过模型类对象进行数据库操作...() # 处理视图路由器 router.register("stu", StudentAPIView) # 向路由器中注册视图集 urlpatterns += router.urls # 将路由器列表追加写入

    2.3K10

    Django API开发: 使用Python和Django构建web APIs

    for api是一个基于项目的指南,指导您使用DjangoDjango REST框架构建现代API。...Django REST 框架 有成百上千第三方应用程序可为Django添加更多功能。 (您可以在Django Packages上看到完整可搜索列表。)...为什么写这本书 我写这本书原因是,对于Django REST框架新手来说,显然缺乏良好资源。 假设似乎每个人都已经了解API,HTTP,REST等。...在第2章中,我们将建立一个图书馆书网站,然后向其中添加一个API,以回顾传统DjangoDjango REST Framework之间区别。...在第5-9章中,我们构建了一个生产就绪Blog API,其中包含完整CRUD功能。 我们还将介绍深度权限,用户身份验证,视图集路由器,文档等。

    2.9K21

    DjangoRESTframework(补充)

    ', views.BookInfoViewSet) # 向路由器中注册视图集 urlpatterns += router.urls # 将路由器所以路由信息追到到django路由列表中 定义序列化器...验证失败,可以通过序列化器对象 errors 属性获取错误信息,返回一个字典, 包含字段和字段错误,若是非字段错误,可以通过修改 REST framework 配置中 NON_FIElD_ERRORS_KEY...两个基类 1) APIView rest_framework.views.APIView APIView是REST framework提供所有视图基类,继承自DjangoView父类...APIView与View不同之处在于: 传入到视图方法中REST frameworkRequest对象,而不是DjangoHttpRequeset对象; 视图方法可以返回REST framework...使用视图集ViewSet,可以将一系列逻辑相关动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() 保存数据 destory

    2.2K30

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

    项目初始化 在这一系列教程中,我们将会实现一个全栈美食分享网站,后端用 Django 实现,前端则是 Nuxt 框架,下面是最终完成后项目效果: 预备知识 本教程假定你已经知道了 基本 Python...我们接着安装 Django “三件套”: Django: Django 框架本身,提供了丰富且强大服务器开发组件; DRF (Django Rest Framework):Django 框架超级搭档...全局配置 首先,在全局配置文件 settings.py 中做如下改动: 在 INSTALLED_APPS 中添加 rest_framework、corsheaders 和 core,前两个分别是 Django...Rest Framework 和 Django CORS Headers 应用,最后一个是我们网站应用; 在 MIDDLEWARE 中添加 corsheaders.middleware.CorsMiddleware...这里我们采用开挂模式,直接调用 Django Rest Framework 提供模型视图集(ModelViewset)直接搞定数据模型增删改查逻辑: from rest_framework import

    1.6K30

    DRF框架学习(四)

    DRF框架学习(四) 1.视图集对象action属性 作用: 获取现在要执行是哪一种操作。 self.action:是字符串类型,目的是获取所有执行操作。...False DefaultRouter与 SimpleRouter区别是, DefaultRouter会多附带一个默认API根视图,返回一个包含所有列表视图超链接响应数据。...3.案例 写一个图集,提供一下两个接口 1.获取所有的图书信息 GET/books/list 2.获取指定图书信息 GET/books/(?...父类,并实现以下两个任何一个方法或全部 .has_permission(self,request,view) 是否可以访问视图, view表示当前视图对象 .has_object_permission(...'django_filters', # 需要注册应用, ] # 过滤 REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend

    2.8K40

    第 11 篇:基于 drf-haystack 文章搜索接口

    django-haystack 默认返回搜索结果是一个类似于 django QuerySet 对象,需要配合模板系统使用,因为未被序列化,所以无法直接用于 django-rest-framework...但是,通过之前功能我们看到,使用 django-rest-framework 是一个近乎标准化但又枯燥无聊过程:首先是编写序列化器用于序列化资源,然后是编写视图集,提供对资源各类操作接口。...此时就要发挥开源社区力量,去 GitHub 使用关键词 rest haystack 搜索,果然搜到一个 drf-haystack 开源项目,专门用于解决 django-rest-framework 和...所以接下来就进入到 django-rest-framework 标准开发流程:定义序列化器 -> 编写视图 -> 配置路由,这样一个标准搜索接口就开发出来了。...最后是在路由器中注册视图集,自动生成 URL 模式: blogproject/urls.py router = routers.DefaultRouter() router.register(r"search

    1.6K20
    领券