django-路由-通过正则表达式来捕获路径-对应视图函数

服务器处理网址的请求流程

》一个网址请求服务器,通过浏览器

》服务端,项目中的urls.py来处理这个请求

通过路由对应关系,匹配网址与对应视图函数的关系

如果一个网址匹配成功,那么就由它所对应的视图函数来处理功能

》视图函数的处理一般要操作两个部分

1,取数据

与数据库的连通, 通过orm来操作数据库(增删改查)

2,展现数据

主要通过render函数来操作

格式

render(请求对象,模板文件,传输的数据)

最终把render进行返回

重点关注urls.py这个文件

文件的功能

请求路径与视图函数的对应关系

常用的方法

》path()

完全匹配

path('car/', views.car),

》re_path()

  • 导入
    from django.urls import re_path

  • 使用

格式

re_path(正则表达式,视图函数)

请求网址路径中只要有cat,匹配成功

re_path(r"cat",视图函数)

效果:

当用户访问

127.0.0.1/abcatefg/

演示:

路由

在这里插入图片描述
视图

在这里插入图片描述

效果:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

当前的效果

只要请求的路径里包含cat,就可以对应上视图函数

只允路径刚好为cat的时候进来

》思路,限定路径的开头和结尾

限定以c开头,限定以t结尾

正则匹配的内容写死,刚好就写成cat

正则式

在这里插入图片描述

效果与分析

一,

在这里插入图片描述
参与匹配的路径是

cat

该路径会和正则中的,匹配

在这里插入图片描述

二,

在这里插入图片描述

为什么不成功?

因为当前参与匹配的字符串是

cat/

它与正则式 r’^cat$’ 不能匹配成功

所以进不了对应的视图,报404错误

实现cat/123这种格式的匹配

要求,必需有cat开头,必需以数字结束

正则路由的写法

在这里插入图片描述

效果
在这里插入图片描述

实现cat/任意多的数字的匹配

只需要把数字那里的位置写成正则式就可以了

在这里插入图片描述
当前正则式的意思是

以cat开头

以数字结尾($在修饰\d)

数字可以是一次或者多次出现, 因为有加号

效果

在这里插入图片描述

结尾为非数字,就报错

在这里插入图片描述

另一例
在这里插入图片描述

获取路径中的数据,获取cat/123路径中的123

想要在后端拿到这串数字

》办法

一,在正则表达式中,把要获取的内容,用括号包起来

二,括号中包的内容,会作为位置参数,传递给视图函数

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

获取一个动态的数据,cat/数字,要获取这个串数字

用括号把要获取的数据的正则式包起来

当前用\d匹配一切数字

用+对\d进行限定,表明至少得有一个或者无数个

正则式:
在这里插入图片描述

视图:

在这里插入图片描述

结果:

在这里插入图片描述

练习

目标

拿到cat/ 和 /123 之间包裹的内容

比如:下面的路径,要拿hello
在这里插入图片描述
下面的路径要拿python
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸鱼编程pyhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值