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

一周学会Django5 Python Web开发-Django5路由命名与反向解析reverse与resolve

锋哥原创的Python Web开发 Django5视频教程:

2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计25条视频,包括:2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~、第2讲 Django5安装、第3讲 Django5创建项目(用命令方式)等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV14Z421z78C/我们在urls.py里定义的路由信息,有时候需要动态获取路由信息,然后进行一些处理,统计,日志等操作,这时候我们需要在其他代码里用到路由信息,比如views.py,后面要学到的模型models.py,Admin系统等,因此我们引入路由反向解析reverse与resolve方法,再使用这两个方法前,我们还需要给路由取名,否则我们无法找到我们需要的那个路由的信息。reverse方法根据路由名称得到路由地址,resolve方法根据路由地址得到路由所有信息。

我们先举一个简单例子来体会下吧。

在order项目的urls.py里,我们对index/和list/请求路由分别取名index和list

然后修改views.py的index方法:

def index(request):route_url = reverse('order:index')print("reverse反向解析得到路由地址:" + route_url)result = resolve(route_url)print("resolve通过路由地址得到路由信息:" + str(result))return HttpResponse("订单信息")

我们运行请求:

http://127.0.0.1:8000/order/index/

控制台输出:

reverse反向解析得到路由地址:/order/index/
resolve通过路由地址得到路由信息:ResolverMatch(func=order.views.index, args=(), kwargs={}, url_name='index', app_names=['order'], namespaces=['order'], route='order/index/')

resolve返回对象属性介绍:

函数方法说明
func路由的视图函数对象或视图类对象
args以列表格式获取路由的变量信息
kwargs以字典格式获取路由的变量信息
url_name获取路由命名name
app names与app name功能一致,但以列表格式表示
namespaces与namespace功能一致,但以列表格式表示
route获取整个路由的名称,包括命名空间

这里我们在修改下项目,来讲下参数的运用。

order的urls.py的list请求加下年月日路由变量

path('list/<int:year>/<int:month>/<int:day>/', views.list, name="list")

对应的views.py的list方法我们也进行修改,要加上三个路由变量

def list(request, year, month, day):kwargs = {'year': year - 1, 'month': month + 1, 'day': day}args = [year, month, day]# route_url = reverse('order:list', args=args)route_url = reverse('order:list', kwargs=kwargs)print("reverse反向解析得到路由地址:" + route_url)result = resolve(route_url)print("resolve通过路由地址得到路由信息:" + str(result))return HttpResponse("订单列表")

进行反向解析路由的时候,我们也可以带上路由实参,可以通过kwargs字典键值对,也可以通过args元组;

测试请求地址:http://127.0.0.1:8000/order/list/2010/11/11/

控制台输出:

reverse反向解析得到路由地址:/order/list/2009/12/11/
resolve通过路由地址得到路由信息:ResolverMatch(func=order.views.list, args=(), kwargs={'year': 2009, 'month': 12, 'day': 11}, url_name='list', app_names=['order'], namespaces=['order'], route='order/list/<int:year>/<int:month>/<int:day>/', captured_kwargs={'year': 2009, 'month': 12, 'day': 11})

点开reverse方法:

必须参数viewname,以及一些可选参数:

  • viewname:代表路由命名或可调用视图对象,一般情况下是以路由命名name来生成路由地址的。

  • urlconf:设置反向解析的URLconf模块。默认情况下,使用配置文件 settings.py 的ROOT_URLCONF属性( 主项目文件夹的urls.py ).

  • args:以列表方式传递路由地址变量,列表元素顺序和数量应与路由地址变量的顺序和数量一致。

  • kwargs:以字典方式传递路由地址变量,字典的键必须对应路由地址变量名,字典的键值对数量与变量的数量一致。

  • current app:提示当前正在执行的视图所在的项目应用,主要起到提示作用,在功能上并无实质的作用。

点开resolve方法:

就两个参数:

  • path:代表路由地址,通过路由地址来获取对应的路由对象信息。

  • urlconf:设置反向解析的_URLconf模块。默认情况下,使用配置文件 settings.py 的ROOT_URLCONF属性( 主项目文件夹的urls.py ).

相关文章:

一周学会Django5 Python Web开发-Django5路由命名与反向解析reverse与resolve

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计25条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…...

好奇!为什么gateway和springMVC之间依赖冲突?

Gateway和SpringMVC之间存在冲突&#xff0c;可能是因为它们分别基于不同的技术栈。具体来说&#xff1a; 技术栈差异&#xff1a;Spring Cloud Gateway 是建立在 Spring Boot 2.x 和 Spring WebFlux 基础之上的&#xff0c;它使用的是非阻塞式的 Netty 服务器。而 Spring MVC…...

一些内网渗透总结

windows命令收集 信息收集: 查看系统版本和补丁信息: systeminfo 查看系统开放端口: netstat -ano 查看系统进程: tasklist /svc 列出详细进程: tasklist /V /FO CSV 查看ip地址和dns信息: ipconfig /all 查看当前用户: whoami /user 查看计算机用户列表: net user 查看计算机…...

C#版字节跳动SDK - SKIT.FlurlHttpClient.ByteDance

前言 在我们日常开发工作中对接第三方开放平台&#xff0c;找一款封装完善且全面的SDK能够大大的简化我们的开发难度和提高工作效率。今天给大家推荐一款C#开源、功能完善的字节跳动SDK&#xff1a;SKIT.FlurlHttpClient.ByteDance。 项目官方介绍 可能是全网唯一的 C# 版字…...

深度学习系列60: 大模型文本理解和生成概述

参考网络课程&#xff1a;https://www.bilibili.com/video/BV1UG411p7zv/?p98&spm_id_frompageDriver&vd_source3eeaf9c562508b013fa950114d4b0990 1. 概述 包含理解和分类两大类问题&#xff0c;对应的就是BERT和GPT两大类模型&#xff1b;而交叉领域则对应T5 2.…...

SpringBoot 使用 JWT 保护 Rest Api 接口

用 spring-boot 开发 RESTful API 非常的方便&#xff0c;在生产环境中&#xff0c;对发布的 API 增加授权保护是非常必要的。现在我们来看如何利用 JWT 技术为 API 增加授权保护&#xff0c;保证只有获得授权的用户才能够访问 API。 一、Jwt 介绍 JSON Web Token (JWT)是一个开…...

大蟒蛇(Python)笔记(总结,摘要,概括)——第10章 文件和异常

目录 10.1 读取文件 10.1.1 读取文件的全部内容 10.1.2 相对文件路径和绝对文件路径 10.1.3 访问文件中的各行 10.1.4 使用文件的内容 10.1.5 包含100万位的大型文件 10.1.6 圆周率中包含你的生日吗 10.2 写入文件 10.2.1 写入一行 10.2.2 写入多行 10.3 异常 10.3.1 处理Ze…...

使用JDBC操作数据库(IDEA编译器)

目录 JDBC的本质 ​ JDBC好处 JDBC操作MySQL数据库 1.创建工程导入驱动jar包 2.编写测试代码 ​相关问题 JDBC的本质 官方(sun公司) 定义的一套操作所有关系型数据库的规则&#xff0c;即接口各个数据库厂商去实现这套接口&#xff0c;提供数据库驱动jar包我们可以使用这…...

Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作

Vue图片浏览组件v-viewer&#xff0c;支持旋转、缩放、翻转等操作 之前用过viewer.js&#xff0c;算是市场上用过最全面的图片预览。v-viewer&#xff0c;是基于viewer.js的一个图片浏览的Vue组件&#xff0c;支持旋转、缩放、翻转等操作。 基本使用 安装&#xff1a;npm安装…...

大蟒蛇(Python)笔记(总结,摘要,概括)——第2章 变量和简单的数据类型

目录 2.1 运行hello_world.py时发生的情况 2.2 变量 2.2.1 变量的命名和使用 2.2.2 如何在使用变量时避免命名错误 2.2.3 变量是标签 2.3 字符串 2.3.1 使用方法修改字符串的大小写 2.3.2 在字符串中使用变量 2.3.3 使用制表符或换行符来添加空白 2.3.4 删除空白 2.3.5 删除…...

SpringCloud-Gateway网关的使用

本文介绍如何再 SpringCloud 项目中引入 Gateway 网关并完成网关服务的调用。Gateway 网关是一个在微服务架构中起到入口和路由控制的关键组件。它负责处理客户端请求&#xff0c;进行路由决策&#xff0c;并将请求转发到相应的微服务。Gateway 网关还可以实现负载均衡、安全认…...

想要学习编程,有什么推荐的书籍吗

如果你要变得更好&#xff0c;C语言是一个极佳的选择&#xff0c;其原因有二。首先&#xff0c;C语言缺乏任何现代的安全功能&#xff0c;这意味着你必须更为警惕&#xff0c;时刻了解真正发生的事情。如果你能写出安全、健壮的C代码&#xff0c;那你就能用任何编程语言写出安全…...

LWM(LargeWorldModel)大世界模型-可文字可图片可视频-多模态LargeWorld-视频问答成功运行-实现循环问答多次问答

Large World Model&#xff08;LWM&#xff09;现在大火&#xff0c;其最主要特点是不仅能够针对文本进行检索交互&#xff0c;还能对图片、视频进行问答交互&#xff0c;自从上文《LWM(LargeWorldModel)大世界模型-可文字可图片可视频-多模态LargeWorld-详细安装记录》发出后&…...

线阵相机之帧超时

1 帧超时的效果 在帧超时时间内相机若未采集完一张图像所需的行数&#xff0c;则相机会直接完成这张图像的采集&#xff0c;并自动将缺失行数补黑出图&#xff0c;机制有以下几种选择&#xff1a; 1. 丢弃整张补黑的图像 2. 保留补黑部分出图 3.丢弃补黑部分出图...

模型转换案例学习:等效替换不支持算子

文章介绍 Qualcomm Neural Processing SDK &#xff08;以下简称SNPE&#xff09;支持Caffe、ONNX、PyTorch和TensorFlow等不同ML框架的算子。对于某些特定的不支持的算子&#xff0c;我们介绍一种算子等效替换的方法来完成模型转换。本案例来源于https://github.com/quic/qidk…...

js 数组排序的方式

var numberList [5, 100, 94, 71, 49, 36, 2, 4]; 冒泡排序&#xff1a; 相邻的数据进行两两比较&#xff0c;小数放在前面&#xff0c;大数放在后面&#xff0c;这样一趟下来&#xff0c;最小的数就被排在了第一位&#xff0c;第二趟也是如此&#xff0c;如此类推&#xff0…...

手机连接电脑后资源管理器无法识别(识别设备但无法访问文件)

问题描述 小米8刷了pixel experience系统,今天用电脑连接后无法访问手机文件,但是手机选择了usb传输模式为文件传输 解决办法 在设备和打印机页面中右键选择属性 点击改变设置 卸载驱动,注意勾选删除设备的驱动程序软件 卸载后重新连接手机,电脑弹出希望对设备进行什么操作时…...

安装unget包 sqlsugar时报错,完整的报错解决

前置 .net6的开发环境 问题 ? 打开unget官网&#xff0c;搜索报错的依赖Oracle.ManagedDataAccess.Core unget官网 通过unget搜索Oracle.ManagedDataAccess.Core查看该依赖的依赖 发现应该是需要的依赖Oracle.ManagedDataAccess.Core(>3.21.100)不支持.net6的环境 解…...

oracle数据库事务的四大特性与隔离级别与游标

数据库事务的四大特性: 这里提到了 ACID 四个特性&#xff0c;分别是&#xff1a; A&#xff08;Atomicity&#xff09;&#xff1a; 原子性&#xff0c;确保事务中的所有操作要么全部执行成功&#xff0c;要么全部不执行&#xff0c;不存在部分执行的情况。 C&#xff08;…...

Day25--learning English

一、积累 1.crab 2.scrape 3.crude 4.infect 5.blinds 6.plunk 7.fart 8.expel 9.stamp 10.tongs 11.utensil 12.sticky 13.yolk 14.snap 15.fuzz 16.chuck 17.hamper 18.panel 19.prod 20.eyebrow 二、练习 1.牛津原译 scrape /skreɪp/ REMOVE 除去 1.to remove sth from…...

3分钟上手弹幕盒子:零基础高效制作自定义弹幕的免费工具

3分钟上手弹幕盒子&#xff1a;零基础高效制作自定义弹幕的免费工具 【免费下载链接】danmubox.github.io 弹幕盒子 项目地址: https://gitcode.com/gh_mirrors/da/danmubox.github.io 弹幕盒子是一款专业的在线自定义弹幕生成工具&#xff0c;以轻量化架构设计为核心&a…...

Pixel Language Portal快速上手:无需Python基础的Streamlit镜像开箱即用

Pixel Language Portal快速上手&#xff1a;无需Python基础的Streamlit镜像开箱即用 1. 什么是Pixel Language Portal&#xff1f; Pixel Language Portal&#xff08;像素语言跨维传送门&#xff09;是一款基于腾讯Hunyuan-MT-7B核心引擎构建的创新翻译工具。它最大的特点是…...

【技术解析】SimpleNet:用极简网络架构革新工业图像异常检测

1. 工业图像异常检测的现状与挑战 工业生产线上的质检环节一直是个让人头疼的问题。想象一下&#xff0c;你站在一条每分钟生产上百件产品的流水线旁&#xff0c;需要肉眼检查每个产品表面是否有划痕、凹陷或污渍——这几乎是不可能完成的任务。传统计算机视觉方法在这个领域已…...

Matlab源代码教程:枝晶生长模拟中的溶质与液相分数分析

枝晶生长模拟&#xff0c;溶质、液相分数&#xff0c;matlab源代码 教程相场法模拟枝晶生长这事挺有意思的——想象金属熔液凝固时&#xff0c;那些像雪花般绽放的晶体结构&#xff0c;背后其实是溶质扩散和相变的战场。今儿咱们用MATLAB整活&#xff0c;搞个能看见晶体长毛刺的…...

树莓派Pico硬件重置失效?试试这个C语言强制重置方案(附完整代码)

树莓派Pico硬件重置失效&#xff1f;试试这个C语言强制重置方案&#xff08;附完整代码&#xff09; 当你在开发树莓派Pico项目时&#xff0c;可能会遇到这样的情况&#xff1a;硬件重置按钮突然失效&#xff0c;外围设备&#xff08;比如LED&#xff09;无法正常复位。传统的B…...

iarduino_KB矩阵键盘库:硬件感知型Arduino按键驱动方案

1. 项目概述iarduino_KB是由俄罗斯嵌入式开发团队 iArduino.ru 面向 Arduino IDE 推出的专用矩阵键盘驱动库。该库并非通用型扫描抽象层&#xff0c;而是针对其自研四款物理形态与电气特性高度定制化的柔性/机械式矩阵键盘模块进行深度适配的固件级解决方案。其核心价值在于将底…...

【STM32F103标准库开发】DMA+USART双剑合璧:实战环形缓冲区与空闲中断解析

1. 为什么需要DMAUSART组合方案 第一次用STM32做GPS数据采集时&#xff0c;我被串口中断折磨得够呛。当时用的是传统中断接收模式&#xff0c;每收到一个字节就触发一次中断&#xff0c;在115200波特率下&#xff0c;CPU几乎被串口中断占满&#xff0c;其他任务根本跑不动。后来…...

Agent如何帮助企业实现人效最大化?——深度拆解AI Agent驱动的企业生产力变革路径

在2026年的产业化浪潮中&#xff0c;AI Agent正在从“技术概念”转变为企业实现“人效最大化”的核心驱动力。这场变革的本质并非简单的工具迭代&#xff0c;而是企业组织形态与工作流的深度重塑。通过将人类从重复、低效的执行性工作中解放出来&#xff0c;企业智能自动化正推…...

MultiAgentBench:一套真正评测多智能体协作与博弈能力的基准

摘要&#xff1a;大语言模型已经展现出作为自主智能体的显著能力&#xff0c;但现有基准要么只关注单智能体任务&#xff0c;要么局限于狭窄领域&#xff0c;无法刻画多智能体协作与竞争的动态过程。本文提出 MultiAgentBench&#xff0c;这是一个面向 LLM 多智能体系统的综合性…...

MATLAB实战:如何用三种噪声干扰模拟器提升脉冲雷达抗干扰能力

MATLAB实战&#xff1a;三种噪声干扰模拟器在脉冲雷达抗干扰测试中的应用 雷达系统在现代电子战中扮演着关键角色&#xff0c;而抗干扰能力是评估雷达性能的重要指标。本文将深入探讨如何利用MATLAB构建射频噪声、调幅噪声和调频噪声三种干扰模拟器&#xff0c;通过完整的代码实…...