当前位置: 首页 > news >正文

Django REST Framework(十四)路由Routes

如何在Django REST framework中利用SimpleRouterDefaultRouter来高效生成视图集的路由信息,并详细解释如何使用action装饰器为视图集中的自定义方法生成路由

1.1 使用 Routers

创建 router 对象并注册视图集

在创建 router 对象并注册视图集时,我们会定义一个视图集并注册到 router 中。以下是完整的代码示例:

from rest_framework import routers
from django.urls import path, include
from .views import BookView# 实例化一个 DefaultRouter
router = routers.DefaultRouter()# 注册视图集
router.register('book', BookView, basename='book')# 使用urlpatterns将生成的路由添加到Django的URL配置中
urlpatterns = [path('', include(router.urls)),
]

上述代码将生成以下路由:

^book/$         name: book-list
^book/{pk}/$    name: book-detail

添加路由数据

有两种方式可以将生成的路由添加到 urlpatterns 中:

方式一:
urlpatterns = [...
]
urlpatterns += router.urls
方式二:
from django.urls import path, includeurlpatterns = [...path('', include(router.urls)),
]

路由代码示例

假设我们在 myapp 应用中有一个 views.py 文件,里面定义了一个视图集 BookView

from rest_framework.viewsets import ModelViewSet
from .models import Book
from .serializers import BookSerializerclass BookView(ModelViewSet):queryset = Book.objects.all()serializer_class = BookSerializer

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 二十四、【机器学习】【非监督学习】- 高斯混合模型 (Gaussian Mixture Models, GMM)
  • 深入理解 Redis 的使用与监控
  • 移动UI:排行榜单页面如何设计,从这五点入手,附示例。
  • 【DP】01背包
  • Linux嵌入书学习—数据结构——栈(seqstak)
  • 鸿蒙(HarmonyOS)下拉选择控件
  • CSS实现表格无限轮播
  • Kafka基础概念
  • @NotNull、@NotEmpty 和 @NotBlank 区别
  • 【leetcode 详解】生成特殊数字的最少操作【中等】(C++思路精析)
  • C#中实现Web API的签名验证
  • 24种设计模式介绍与6大设计原则(电子版教程)
  • [Javascript】前端面试基础3【每日学习并更新10】
  • 【iOS】——Block循环引用
  • Java面试题基础
  • [LeetCode] Wiggle Sort
  • 【笔记】你不知道的JS读书笔记——Promise
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 4. 路由到控制器 - Laravel从零开始教程
  • ECMAScript6(0):ES6简明参考手册
  • JAVA并发编程--1.基础概念
  • mysql_config not found
  • MySQL的数据类型
  • overflow: hidden IE7无效
  • Python_OOP
  • Redis中的lru算法实现
  • SpiderData 2019年2月23日 DApp数据排行榜
  • 理清楚Vue的结构
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 手写一个CommonJS打包工具(一)
  • 用Visual Studio开发以太坊智能合约
  • Nginx实现动静分离
  • #pragma预处理命令
  • #宝哥教你#查看jquery绑定的事件函数
  • (3)选择元素——(17)练习(Exercises)
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (十六)视图变换 正交投影 透视投影
  • (算法二)滑动窗口
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (循环依赖问题)学习spring的第九天
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (转)四层和七层负载均衡的区别
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 8.0 中有哪些新的变化?
  • .NET C# 使用 iText 生成PDF
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .Net 代码性能 - (1)
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .NET正则基础之——正则委托