Django学习之路由配置和有名分组

本文介绍了Django中的URL路由配置,通过正则表达式实现灵活的URL匹配,减少重复代码。讲解了如何从URL中捕获值,并使用有名分组实现关键字参数,简化视图函数的参数接收。示例展示了具体配置和效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1>引子

    URL配置本质也就是告诉Django,URL和调用函数之间的映射关系,对于客户端发来的请求,我应该

    用哪一段逻辑代码来进行响应。

    先看个例子,比如一个博客系统,我要看不同年份的博客记录,基于我们之前所学习的知识,我们只能这样写:

    

    恩,也不是很多,毕竟你一个网站可能也就是几十年,那要是查月的呢?就要再这些基础上再乘以12,按天呢?再乘以30,,,

    这个数据就非常庞大了,难道要在这里列出每一天对应的path和处理函数吗?

    这个时候,路由配置就显得非常的重要了,

    引入一个模块 re_path,其实看模块名也能想到一些,re,肯定是跟正则有关系,是否利用正则匹配来实现分组呢?

    答案还真是的,它的第一个参数就不是那种写死的path(比如‘timer/’)了,而是一个正则表达式(如^timer/),

    只要match这个表达式的path,都用一个处理函数处理,就行了,

    就比入上面的‘/blog/2001’,正则可以写成 r‘/blog/[0-9]{4}’,那么我管你是哪一年,只要是个blog后面接的是

    4位数字,我都是blog_y函数来处理。

    urls.py

    

    views.py

    

    效果

    

    

2>路由配置的从URL中取值

    若要从URL 中捕获一个值,只需要在它周围放置一对圆括号

    

    所以,在view视图编写函数的时候,也必须用参数去接收这个值,如下

    

    看下实际效果

    

    

    这就是路由取值,谨记,只要URL加了括号去取值,定义处理函数的时候就要加参数接收。

3>有名分组

    看名字不知道啥意思,如果把上面的取值传参称为 位置参数(就是year,month这些),那么,

    有名分组其实就是关键字参数,就是 指名道姓,我这个参数就是对应的URL的这个值的。

    那么,如何定义这个关键字的名称呢?

    很简单,在括号里面,表达式之前,加上 ?P<参数名>

    

    view视图定义函数正确写法如下,因为是关键字参数,所以参数的位置顺序就不影响了

    

    若非如此

    

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值