返回顶部
首页 > 资讯 > 后端开发 > Python >Django零基础入门之路由path和re_path详解
  • 954
分享到

Django零基础入门之路由path和re_path详解

2024-04-02 19:04:59 954人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录urls.py文件中的path和re_path1.path的基本规则:2.默认支持的转换器有:3.re_path正则匹配:Django中实战使用path和re_path1.url

假设现在有个需求:
  需要通过URL进行参数传递,我们该怎么做呢?
    其中有个方法就是本文要讲的内容——path和进阶版的re_path。

urls.py文件中的path和re_path

1.path的基本规则:


path('test/<xx>/',views.test)

第一个参数——test/<xx>/:使用尖括号(<>)从url中捕获值。包含一个转化器类型(converter type)。没有转化器,将匹配任何字符串,当然也包括了/字符。

第二个参数——views.test:当前面的url匹配成功后,就会调用后面的视图函数。

但是有个问题就是使用尖括号从url中捕获的值默认都是str类型,如果我们需要强制要求其为别的类型(比如:int型)该怎么办呢?

这就用到了转换器!!!

2.默认支持的转换器有:

str:匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式<str:xx>int:匹配正整数,包含0。slug:匹配字母、数字以及横杠、下划线组成的字符串。uuid:匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。(这是唯一的!)path:匹配任何非空字符串,包含了路径分隔符 转换器的作用:默认是str转换器:所以如果不设置转换器,那么接收到的一切值都是str字符串格式,如果要改变这个参数类型就使用到了转换器!

需要注意的是:path中设置的参数名需要和视图函数中调用的参数名一致!!!

在这里插入图片描述

一般情况下,使用path即可匹配我们想要的url中的参数。但是,如果要匹配的过于复杂,使用path中的转换器无法解决的时候,就要使用到re_path(实则是使用正则匹配!)

3.re_path正则匹配:

如果不做任何限制,浏览器中输入的ULR的地址参数可以任意多,只要包括规定的路径即可成功匹配!
——比如:re_path('hello',views.test5),输入路径:127.0.0.1:8000/aaahelloaaaa都可成功匹配哦!

如果想限制为何path一样的效果——URL中的路径必须一模一样,否则匹配不到,则需要使用正则语法:
——比如:re_path('^hello/$',views.test5),就只有输入路径127.0.0.1:8000/hello/才可成功匹配!

DjanGo中实战使用path和re_path

1.urls.py文件:


"""dj_test URL Configuration

The `urlpatterns` list routes URLs to views. For more infORMation please see:
    https://docs.djangoproject.com/en/2.1/topics/Http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path,re_path                    #导入re_path,使用正则
from . import views

urlpatterns = [     #主路由
    path('admin/', admin.site.urls),
    path('test/', views.test),    #路径  关联的视图

    path('test2/<name>/<int:age>/', views.test2),       #变量默认接收的是字符串形式    改变格式是通过转换器  <int:age>规定所接收的类型为int型


    re_path('^test3/(?P<bb>[0-9]+)',views.test3)	  # 注意这个格式:test3是路径固定参数, bb是可以接受路径中test3/后面参数的参数(任意0-9的数字)!
]

2.views.py视图函数文件:


from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
#视图操作

def test(request):   #函数视图
    return HttpResponse("这里是帅哥")

#url传参(url参数)
def test2(request,name,age):   #函数视图
    return HttpResponse("我叫%s,今年%s岁"%(name,age))

def test3(request,bb):   #函数视图
    return HttpResponse("哈哈哈")

3.效果:

在这里插入图片描述

在这里插入图片描述

到此这篇关于Django零基础入门之路由path和re_path详解的文章就介绍到这了,更多相关Django path re_path内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Django零基础入门之路由path和re_path详解

本文链接: https://lsjlt.com/news/134355.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Django零基础入门之路由path和re_path详解
    目录urls.py文件中的path和re_path1.path的基本规则:2.默认支持的转换器有:3.re_path正则匹配:Django中实战使用path和re_path1.url...
    99+
    2024-04-02
  • Django零基础入门之模板变量详解
    引言: 我们在页面上会看到,谁登录的就会显示谁的信息,那么这个页面上的变量信息是怎样实现的呢? 这就是本文要讲述的内容——Django中的模板变量! 1.模板变量! 可以在前...
    99+
    2024-04-02
  • Django零基础入门之常用过滤器详解
    引言: 前面讲过了Django中使用模板变量。使用很简单,那么有没有什么关于模板变量的骚操作呢? 答案是肯定有的,这就是本文要讲的——过滤器! 1.过滤器 (1)纯干货讲解: 作用:...
    99+
    2024-04-02
  • Django零基础入门之运行Django版的hello world
    目录1.项目目录及文件说明:2.项目与应用app的关系:3.使用django框架编写hello world!1.项目目录及文件说明: manage.py django中的一个命令行...
    99+
    2024-04-02
  • 详解Angular之路由基础
    目录一、路由相关对象二、路由对象的位置三、路由配置四、代码中通过Router对象导航五、配置不存在的路径六、重定向路由七、在路由时候传递数据一、路由相关对象 Router和Rout...
    99+
    2024-04-02
  • Django零基础入门之静态文件的引用
    目录效果展示:1.静态文件引用:(1)创建静态文件目录:(2)静态文件路径的配置:(3)创建三大静态文件:(4)静态文件的引用:引言: 在我们Django中如何引用三大静态文件(Ja...
    99+
    2024-04-02
  • Django零基础入门之调用漂亮的HTML前端页面
    引言:    Django如何调用HTML前端页面呢? Django怎样去调用漂亮的HTML前端页面呢?  就直接使用render方法即可!...
    99+
    2024-04-02
  • Python入门之基础语法详解
    目录一、我的经历及目标二、Python简介三、Python基础语法3.1行和缩进3.2Python注释3.3Python空行3.4同一行显示多条语句3.5print输出3.6多个语句...
    99+
    2024-04-02
  • MyBatis框架零基础快速入门案例详解
    目录一、创建数据库和表二、创建maven工程三、代码编写1、编写Student实体类2、编写DAO接口StudentDao3、编写DAO接口Mapper映射文件StudentDao....
    99+
    2024-04-02
  • Node.js基础入门之path模块,url模块,http模块使用详解
    目录path模块1. path模块示例2. path模块其他方法url模块1. 旧的解析方法2. 新的解析方法http模块1. 什么是HTTP协议?2. HTTP协议约束的细节3. ...
    99+
    2024-04-02
  • Django零基础入门之自定义标签及模板中的使用
    目录自定义标签:第一部分(1)视图函数编写:(2)编写模板文件:(3)自定义标签实现:(4)效果展示:第二部分(1)视图函数编写:(2)编写模板文件:(3)自定义标签实现:第三部分紧...
    99+
    2024-04-02
  • C++中的STL中map用法详解(零基础入门)
    目录一、什么是 map ? 二、map的定义 2.1 头文件 2.2 定义 2.3 方法 三、实例讲解 3.1 增加数据 3.2 删除数据 3.3 修改数据 3.4 查找数据...
    99+
    2024-04-02
  • Django零基础入门之自定义过滤器及模板中的使用
    目录引言自定义过滤器(1)首先(2)内置过滤器lower的使用:(3)自定义过滤器的使用:(4)模板中使用自定义过滤器:(5)效果展示:引言 分析Django内置的模板过滤器: 通...
    99+
    2024-04-02
  • C语言入门之基础知识详解
    目录一、思维导图二、环境搭建三、编码规范四、基本数据类型五、分支循环5.1 分支5.2 循环六、break与continue6.1 无限循环一、思维导图 内容不限于此思维导图 二、...
    99+
    2024-04-02
  • Vue零基础入门之模板语法与数据绑定及Object.defineProperty方法详解
    目录初识vue模板语法插值语法指令语法数据绑定单向绑定双向绑定el和data的两种写法eldataObject.defineProperty方法事件处理事件修饰符键盘事件定义命名(不...
    99+
    2024-04-02
  • Jedis零基础入门及操作Redis中的数据结构详解
    目录Jedis简介及其入门Jedis简介Jedis的操作入门Jedis操作Redis中的数据结构字符串类型 string哈希类型 map列表类型 list集合类型 set有序集合类型...
    99+
    2024-04-02
  • Node.js基础入门之使用方式及模块化详解
    目录什么是Node.js Node.js下载 Node.js和JavaScript的区别Node.js安装与验证 Node.js使用方式1. REPL模式2. 文...
    99+
    2024-04-02
  • Node.js基础入门之缓存区与文件操作详解
    目录缓存区1. 什么是缓存区?2. 创建指定长度的缓存区3. 通过数组创建缓存区4. 通过字符串创建缓存区5. 读写缓存区6. 复制缓存区文件操作1. 异步直接读取2. 同步直接读取...
    99+
    2024-04-02
  • Java基础入门篇之如何理解方法和重载
    本篇内容介绍了“Java基础入门篇之如何理解方法和重载”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、什么是方法简单来说方法就是一段可以被...
    99+
    2023-06-15
  • Node.js基础入门之模块与npm包管理器使用详解
    目录require函数模块分类第三方模块1. 安装第三方模块2. 引入第三方模块3. 示例测试系统模块require注意事项exports导出对象1. exports示例2. exp...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作