首页 > 其他分享 >Django REST Framework(十四)路由Routes

Django REST Framework(十四)路由Routes

时间:2024-07-29 08:59:18浏览次数:16  
标签:图集 REST Django Framework book urlpatterns router import 路由

如何在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, include

urlpatterns = [
    ...
    path('', include(router.urls)),
]

路由代码示例

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

from rest_framework.viewsets import ModelViewSet
from .models import Book
from .serializers import BookSerializer

class BookView(ModelViewSet):
    queryset = Book.objects.all()
    serializer_class = BookSerializer

标签:图集,REST,Django,Framework,book,urlpatterns,router,import,路由
From: https://blog.csdn.net/yjjpp2301/article/details/140761370

相关文章

  • 如何优化 Django 自动重载/启动过程?
    我目前正在开发一个非常大的Django项目,其中包含许多文件,更重要的是,还有大量依赖项,包括Torch和Transformers等包。自从安装Torch以来,我注意到自动重新加载功能和整个启动过程使用开发服务器时的过程变得非常慢。现在我需要10-15秒才能测试我的代码,这在开发过程中非......
  • Django Admin TabularInline:如何通过模型隐藏 M2M 的对象名称?
    如何在管理显示中隐藏Unit_attributeobject(3)?admin.py:fromdjango.contribimportadminfromcore.modelsimportAttribute,UnitclassUnitAttributeInline(admin.TabularInline):[email protected]......
  • 使用celery进行异步处理和定时任务(django)
    一、celery的作用    celery是一个简单、灵活且可靠的分布式系统,用于处理大量消息,同时为操作提供一致的接口。它专注于实时操作,但支持任务调度。Celery主要用于异步任务处理,特别是在Web应用环境中,用于执行后台任务,如发送电子邮件、处理图片、视频转码、运行复杂的......
  • 【Python】Django学习1
     按黑马程序员的美多商场作方向:https://www.bilibili.com/video/BV1nf4y1k7G3一、应用创建、注册处理、配置Pycharm 创建Django项目: 自应用注册处理: 二、应用数据初始化第一步:创建元数据初始化py脚本pythonmanage.pymakemigrations初始化的脚本会放在......
  • Django Web开发:构建强大RBAC权限管理系统的实战指南
    文章目录前言一、rbac基于角色的权限管理1.acl基于用户的权限管理2.rbac基于角色的权限管理二、应用示例1.配置角色资源a.分析表b.核心逻辑c.使用transfer在前端实现资源配置d.页面效果2.登录时获取对应权限a.员工登录b.中间件c.前端请求d.效果图3.前端-路由守卫......
  • django学习入门系列之第五点《javascript的条件语句和函数》
    文章目录5.6条件语句5.7函数往期回顾5.6条件语句if(){}elseif(){}5.7函数#python中函数定义的格式deffunc{函数的内容}#使用函数func()//javascript函数中的内容functionfunc(){函数的内容}//使用函数func()往......
  • R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析|附代码数据
    全文链接:http://tecdat.cn/?p=22596最近我们被客户要求撰写关于预测心脏病的研究报告,包括一些图形和统计输出。本报告是对心脏研究的机器学习/数据科学调查分析。更具体地说,我们的目标是在心脏研究的数据集上建立一些预测模型,并建立探索性和建模方法。但什么是心脏研究?研究大纲......
  • 21、flask-进阶-类视图和RESTful-前后端分离概念
    前后端分离与不分离概念前后端不分离:如render_template('index.html',data=data)这种就是前后端不分离前端和后端一起渲染前后端分离:后端返回json数据-jsonify()前端使用ajax来请求数据:ajax各自处理各自的数据,代码不在一起http请求方式:GET:查询POST:添加数据......
  • 如何在 Django 中调试失败的测试?
    如何调试我的测试?例如,我通过POST创建一个条目并期望它验证并返回特定页面。它可以在浏览器和shell中工作,但测试是唯一失败的事情(讽刺的是!)。我想打印对控制台的响应或其他东西,这样我就可以读取错误或你有什么。但我只能看到我print中的东西,例如视图。不确定是否......
  • Django提示mysql版本过低:django.db.utils.NotSupportedError: MySQL 8 or later is re
    这个提示只是Django的版本检测提示,把它注释掉就好了。全局搜索函数:check_database_version_supported() 文件路径是:django_project\dj01\venv\Lib\site-packages\django\db\backends\base\base.py找到第二个,就是就是使用的那个,把它注释了: definit_connection_sta......