Django REST Framework(十五)路由Routes

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

1.路由的定义规则

        路由称为URL(Uniform Resource Locator,统一资源定位符),也可以称为URLconf,是对可以从互联网上得到的资源位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的路由,用于指出网站文件的路径位置。简单地说,路由可视为我们常说的网址,每个网址代表不同的网页。

        我们知道完整的路由包含:路由地址、视图函数(或者视图类)、可选变量和路由命名。其中基本的信息必须有:路由地址和视图函数(或者视图类),路由地址即我们常说的网址,视图函数(或者视图类)即App的views.py文件所定义的函数或类。

        在App(index文件夹)里添加urls.py是将所有属于App的路由都写入该文件中,这样更容易管理和区分每个App的路由地址,而MyProject文件夹的urls.py是将每个App的urls.py统一管理。这种路由设计模式是Django常用的,其工作原理如下:

        (1) 运 行 MyProject项 目 时 , Django 从 MyProject文 件 夹 的urls.py找到各个App所定义的路由信息,生成完整的路由列表。
        (2)当用户在浏览器上访问某个路由地址时,Django就会收到该用户的请求信息。
        (3)Django从当前请求信息获取路由地址,并在路由列表里匹配相应的路由信息,再执行路由信息所指向的视图函数(或视图类),从而完成整个请求响应过程

        MyProject文件夹的urls.py定义两条路由信息,分别是Admin站点管理和首页地址(index)。其中,Admin站点管理在创建项目时已自动生成,一般情况下无须更改;首页地址是指index文件夹的urls.py。MyProject文件夹的urls.py的代码解释如下:
●from django.contrib import admin:导入内置Admin功能模块。
●from django.urls import path,include:导入Django的路由函数模块。
●urlpatterns:代表整个项目的路由集合,以列表格式表示,每个元素代表一条路由信息。

●path('admin/', admin.site.urls) : 设 定 Admin 的 路 由 信息。'admin/'代表127.0.0.1:8000/admin的路由地址,admin后面的斜杠是路径分隔符,其作用等同于计算机中文件目录的斜杠符号;
admin.site.urls指向内置Admin功能所自定义的路由信息,可以在Python 目 录 Lib\site-packages\django\contrib\admin\sites.py 找到具体定义过程。
● path('',include('index.urls')) : 路 由 地 址 为 “\” , 即127.0.0.1:8000,通常是网站的首页;路由函数include是将该路由信息分发给index的urls.py处理。

由于首页地址分发给index的urls.py处理,因此下一步需要对index的urls.py编写路由信息

        index的urls.py的编写规则与MyProject文件夹的urls.py大致相同,这是最为简单的定义方法,此外还可以参考内置Admin功能的路由定义方法。在index的urls.py导入index的views.py文件,该文件用于编写视图函数或视图类,主要用于处理当前请求信息并返回响应内容给用户。路由信息path('', views.index)的views.index是指视图函数index处理网站首页的用户请求和响应过程。因此,在index的views.py中编写index函数的处理过程

        路由文件urls.py的路由定义规则是相对固定的,路由列表由urlpatterns表示,每个列表元素代表一条路由。路由是由Django的path函数定义的,该函数第一个参数是路由地址,第二个参数是路由所对应的处理函数(视图函数或视图类),这两个参数是路由定义的必选参数

        简而言之,Django 的路由(urls)系统的作用就是使 views 中处理数据的函数与请
求的 URL 建立映射关系。使请求到来之后,根据 urls.py 中的关系条目,查找到与请求对应的处理方法,从而返回给客户端 HTTP 页面数据,执行过程如图:

Django 项目中的 URL 规则定义放在 project 的 u

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/388276.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java题解】杨辉三角—力扣

🎉欢迎大家收看,请多多支持🌹 🥰关注小哇,和我一起成长🚀个人主页🚀 ⭐目前主更 专栏Java ⭐数据结构 ⭐已更专栏有C语言、计算机网络⭐ 题目链接:杨辉三角 目录👑 ⭐题…

the request was rejected because no multipart boundary was found

文章目录 1. 需求描述2. 报错信息3. 探索过程1. 使用postman 排除后端错误2. 搜索网上的解决方法3. 解决方法 1. 需求描述 想要在前端上传一个PDF 发票,经过后端解析PDF之后,将想要的值自动回填到对应的输入框中 2. 报错信息 org.apache.tomcat.util.…

2024年有哪些开放式耳机值得入手?值得关注的开放式耳机评测大赏

如今,开放式耳机越来越受到人们的关注。2024 年更是涌现出了众多优秀的开放式耳机产品。但在众多选择面前,哪一款耳机的音质更出色?哪一款佩戴起来更舒适?又有哪一款在通话质量和连接性能上表现更优异呢?接下来我将详细…

【Devops】CertD 完全免费、自动申请、自动部署SSL证书一站式管理工具 | 自动化HTTPS | 3个月SSL自动轮换

CertD CertD 是一个免费全自动申请和自动部署更新SSL证书的工具。 后缀D取自linux守护进程的命名风格,意为证书守护进程。 关键字:证书自动申请、证书自动更新、证书自动续期、证书自动续签 一、特性 本项目不仅支持证书申请过程自动化,还…

SpringMVC源码解析(二):请求执行流程

SpringMVC源码系列文章 SpringMVC源码解析(一):web容器启动流程 SpringMVC源码解析(二):请求执行流程 目录 前言DispatcherServlet入口一、获取HandlerExcutionChain(包括Handler)1、获取Handler1.1、通过request获取查找路径1.2、通过查找路径获取Han…

找工作很迷茫?程序员的岗位宝典来了!

随着数字化转型进展深入,大量数字化、智能化的岗位相继涌现。 但即使这样,大家依然认为,找到一份合适的工作实在是太!难!了! 调查显示,技术创新和商业模式正在成为助推企业发展的两大动力。同时…

【iOS】——锁

五类锁 锁作为一种非强制的机制,被用来保证线程安全。每一个线程在访问数据或者资源前,要先获取(Acquire)锁,并在访问结束之后释放(Release)锁。如果锁已经被占用,其它试图获取锁的…

计算机网络必会面经

1.键入网址到网页显示,期间发生了什么 2.在TCP/IP网络模型中。TCP将数据进行分段后,为什么还需要IP层继续分片 3.详细说明tcp三次握手,为什么是三次,若每次握手丢了,解决办法是什么 4.详细说明tcp四次挥手&#xff…

【Python】python基础

本篇文章将讲解以下知识点: (1)循环语句 (2)字符串格式化 (3)运算符 一:循环语句 循环语句有两种:while for 本篇文章只讲解while循环 格式: whil…

Unity材质球自动遍历所需贴图

Unity材质球自动遍历所需贴图 文章目录 Unity材质球自动遍历所需贴图一、原理二、用法1.代码:2.使用方法 一、原理 例如一个材质球名为:Decal_Text_Cranes_01_Mat , 然后从全局遍历出:Decal_Text_Cranes_01_Albedo赋值给材质球的…

【网络基础】初识网络 {计算机网络背景;网络协议初识;网络传输基本流程;网络中的地址管理;网络设备简单介绍}

一、计算机网络背景 1.1 网络发展 计算机网络的发展可以追溯到20世纪60年代,那时候最初的计算机网络只是为了让科学家们能够共享计算机资源和数据。但是在20世纪80年代,互联网的出现彻底改变了计算机网络的面貌,使得人们可以随时随地通过互…

AI剪辑短视频以及账号管理矩阵工具系统搭建开发

目录 前言 一、系统有哪些功能? 二、怎么开发 前言 通过AI剪辑短视频以及生成短视频,以及对自媒体账号的管理功能的功能进行开发。这款系统能够批量混合剪辑视频然后一键发布到绑定好的自媒体账号里面。 一、系统有哪些功能? 1.AI智能文…

【深度学习实战(49)】目标检测损失函数:IoU、GIoU、DIoU、CIoU、EIoU、alpha IoU、SIoU、WIoU原理及Pytorch实现

前言 损失函数是用来评价模型的预测值和真实值一致程度,损失函数越小,通常模型的性能越好。不同的模型用的损失函数一般也不一样。损失函数主要是用在模型的训练阶段,如果我们想让预测值无限接近于真实值,就需要将损失值降到最低…

深入探讨RCE漏洞及其防御策略

1. RCE漏洞 1.1. 漏洞原理 远程代码执行(RCE)漏洞允许攻击者远程注入并执行操作系统命令或代码,从而控制后台系统。 1.2. 漏洞产生条件 调用第三方组件存在代码执行漏洞。用户输入内容作为系统命令参数拼接到命令中。对用户输入的过滤不严…

汽车雷达系统集成

汽车雷达系统集成是实现高级驾驶辅助系统(ADAS)和自动驾驶功能的重要环节,它涉及多种硬件和软件的协同工作。以下将详细讲解汽车雷达系统集成的各个方面: 雷达传感器选择 毫米波雷达:毫米波雷达主要使用24GHz和77GHz频…

【SQL Server点滴积累】SQL Server 2016数据库邮件(Database Mail)功能故障的解决方法

今天和大家分享SQL Server 2016数据库邮件(Database Mail)功能故障的解决方法 故障现象: 在SQL Server 2016中配置完成数据库邮件(Database Mail)功能后,当你尝试发送测试邮件后,既收不到测试邮件,也不显示错误消息 KB3186435 -…

Windows + Ubuntu双系统!小白轻松安装

前言 这几天有小伙伴想着装WindowsUbuntu双系统,但苦于找不到办法,就在某篇文章后台留言: 这不,今天就更新了嘛!虽然做不到有求必应,但教程帖还是可以写写的,能帮一个是一个! 今天要…

FFmpeg:多媒体处理的瑞士军刀

😎 作者介绍:欢迎来到我的主页👈,我是程序员行者孙,一个热爱分享技术的制能工人。计算机本硕,人工制能研究生。公众号:AI Sun(领取大厂面经等资料),欢迎加我的…

docker安装phpMyAdmin

直接安装phpMyAdmin需要有php环境,比较麻烦,总结了使用docker安装方法,并提供docker镜像。 1.docker镜像 见我上传的docker镜像:https://download.csdn.net/download/taotao_guiwang/89595177 2.安装 1).加载镜像 docker load …

Portainer-CE(可视化工具)一键部署+中文版

目录 Portainer 的主要功能 安装官方版2.19.5 安装中文版 2.19.5 安装中文版2.11.0 Portainer 是一个开源的图形化管理工具,用于管理 Docker 容器、Swarm 集群和 Kubernetes 集群。它提供了一个用户友好的 Web 界面,可以帮助用户更轻松地管理和监控…