示例:

urlpatterns = [
path('detail.<int:id>.html', detailView, name='detail'),
]

路由变量的类型

示例路由配置了路由变量 id,通过动态改变路由变量id的数值就能生成相应的详情页。

django的路由变量分为字符类型、整型、slug和uuid。说明如下:

  • 字符类型:匹配任何非空字符串,但不含斜杠,如果没有指定类型,默认就使用该类型。
  • 整型:匹配0和正整数
  • slug:可以理解为注释、后缀或附属等概念,常作为路由的解释性字符。比如网页的标题为“13岁的孩子”,其路由地址可以是设置为“13-sui-de-hai-zi”
  • uuid:匹配一个uuid格式的对象。为了防止冲突,规定必须使用“-”短横杠,并且所有字母为小写。例如:“978c098-18y238-asd12s-asd2qeasd”

在路由中,如果使用函数 path 定义路由,那么路由变量则使用变量符号“<>”定义。

可选变量

除了在路由地址中设置变量,Django还支持在路由地址外设置变量,比如在路由中添加可选变量 user:

urlpatterns = [
path('.html', commodityView,{'user': 'admin'}, name='detail'),
]

可选变量的规则:

  • 可选变量只能以字典的形式表示
  • 设置的可选变量只能在视图函数中读取和使用
  • 可选变量必须在视图函数和参数 name 之间

正则表达式

示例:

from django.urls import re_path
urlpatterns = [
re_path('(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2}).html', views.mydate),
]

路由的正则表达式是由路由函数 re_path 定义的,其作用是对路由变量进行截取与判断,正则表达式是以小括号为单位的,每个小括号的前后可以使用斜杠或者其他字符将其分割与结束。

  • ?P是固定格式,字母 P 必须大写
  • <year> 是变量名
  • [0-9]{4} 是正则表达式的匹配模式,代表变量的长度为4,只允许取0-9的值。

[django]路由变量与正则表达式的更多相关文章

  1. Django路由配置之正则表达式详解

    正则表达式详解 urls.py from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles ...

  2. Django路由系统-URLconf配置、正则表达式简述

    Django路由系统 1.11版本官方文档 ​ URL配置就像是Django项目的目录,它的本质是URL与URL调用的函数之间的映射表,Django会根据URL配置,在遇到一个URL时,就去执行相应的 ...

  3. 解析Django路由层URLconf

    目录: 一  Django中路由的作用 二  路由的分组 三  路由分发 四  反向解析 五  名称空间 六  Django2.0版的path 一.Django中路由的作用 URL配置(URLconf ...

  4. Python菜鸟之路:Django 路由、模板、Model(ORM)

    Django路由系统 Django的路由系统让Django可以根据URI进行匹配,进而发送至特定的函数去处理用户请求.有点类似nginx的location功能. Django的路由关系分为三种:普通关 ...

  5. Django路由控制总览

    今日内容:(路由层) 1 简单配置 -第一个参数是正则表达式(如果要精准匹配:'^publish/$') -第二个参数是视图函数(不要加括号) -url(r'^admin/', admin.site. ...

  6. 关于Django路由层简单笔记

    Django—路由层 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个U ...

  7. Django路由系统

    django路由系统 简而言之,django的路由系统作用就是使views里面处理数据的函数与请求的url建立映射关系.使请求到来之后,根据urls.py里的关系条目,去查找到与请求对应的处理方法,从 ...

  8. Django 路由系统

    Django 路由系统 基本格式 from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] 参数说 ...

  9. Python学习---Django路由系统【all】

    Django URL (路由系统) Django URL (路由系统): URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映 ...

  10. 【python】-- Django路由系统(网址关系映射)、视图、模板

    Django路由系统(网址关系映射).视图.模板 一.路由系统(网址关系映射) 1.单一路由对应: 一个url对应一个视图函数(类) urls.py: url(r'^test', views.test ...

随机推荐

  1. 聊一聊redis十种数据类型及底层原理

    概述 Redis 是一个开源的高性能键值数据库,它支持多种数据类型,可以满足不同的业务需求.本文将介绍 Redis 的10种数据类型,分别是 string(字符串) hash(哈希) list(列表) ...

  2. Llinux系统(Centos/Ubuntu/Debian)弹性云数据盘home扩容|云盘一键分扩容

    一.脚本自动处理 适用:数据盘home分区升级扩容合并.云盘升级扩容合并.(注意:不要在宝塔面板终端执行) 输入以下命令执行:  wget -O homeV31.sh http://downinfo. ...

  3. 2021-09-26:搜索旋转排序数组。整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了

    2021-09-26:搜索旋转排序数组.整数数组 nums 按升序排列,数组中的值 互不相同 .在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.lengt ...

  4. vue全家桶进阶之路2:JavaScript

    JavaScript(简称"JS")是当前最流行.应用最广泛的客户端脚本语言,用来在网页中添加一些动态效果与交互功能,在 Web 开发领域有着举足轻重的地位.JavaScript ...

  5. jq如何将获取到的css属性值变为int类型

    情况 小王:诶诶诶?我用js中css方法获取到的属性值怎么判断错误了呀?怎么办怎么办? Allen:害,小王,你是不是没有注意左右两边的类型,会不会是数据类型不一致导致的? 事故现场: if($(&q ...

  6. 驱动开发:内核封装WFP防火墙入门

    WFP框架是微软推出来替代TDIHOOK传输层驱动接口网络通信的方案,其默认被设计为分层结构,该框架分别提供了用户态与内核态相同的AIP函数,在两种模式下均可以开发防火墙产品,以下代码我实现了一个简单 ...

  7. AI在金融体系下如何引导API安全?

    AI在金融体系下如何引导API安全? 随着金融科技的快速发展,越来越多的金融机构开始使用API(应用程序接口)进行数字化转型,加速业务流程和数据交换.然而,API在金融体系下面临诸多安全威胁,如恶意攻 ...

  8. 深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型对比

    深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型.DSSM模型召回排序策略以及和其他模型对比 1.DeepFM模型 1.1.模型简介 CTR预估是目前推荐系统的核心技术,其目标是预估用户点 ...

  9. 深入浅出MySQL - 架构与执行

    Photo by Merilin Kirsika Tedder from Pexels 一.MySQL的逻辑架构 MySQL作为一个流行的开源关系型数据库管理系统,它可以运行在多种平台上,支持多种存储 ...

  10. Jconsole 开启远程连接遇到的一些坑

    最近在学习 JVM,其中涉及到性能.内存等指标分析需要使用工具分享,Java 提供了几个可视化工具来监控和管理 Java 应用,比如 Jconsole.JVisual.JMC,他们以图形化的界面实时的 ...