Django路由层简介

Django请求生命周期流程图
image
下面就简单来介绍下路由层

什么是路由层?

路由层简单来说就是一个指引,帮助我们找到所在的客户需要处理的逻辑

在Django1.x版本使用url,支持正则匹配
在Django3.x版本使用path和re_path,url
re_path支持正则
path 是精准匹配,不支持正则,但是path支持5个转化器,也可以自己定义转化器

str:匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式
int:匹配正整数,包含0
slug:匹配字母,数字,横杠,下划线,组成的字符串
uuid:匹配格式化的uuid,如0751943d3...
path:匹配任何非空字符串,包含了路径分隔符

伪静态的概念

伪静态其实就是把动态页面改成静态页面
伪装的目的:
为了更好的被各大搜索引擎抓到,静态页面最好被抓
seo:优化关键词被容易搜索到
sem:广告

无名分组

re_path('^index/(\d+)/([a-z]{4})$', views.index)
无名分组就是get请求方式,分为两种
1.
http://127.0.0.1:8000:/test/?a=1&b=2
2.
http://127.0.0.1:8000/test/a/b
总结:无名分组就是把正则中小括号里的匹配到的内容以位置参数的形式传递给views

有名分组

re_path(r'test/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})$', views.test),
总结:有名分组就是把正则中小括号里匹配的内容以关键字参数的形式传递给试图函数

"注意:不要混合使用"

反向解析

给每一个路由都可以起一个别名,根据名字得到一个地址
re_path(r'(?P<year>[0-9]{4})/test$', views.test,name='test'),
#后端反向解析
def home(request):
    res = reverse('test', args=(2023,))
    print(res)
    return render(request,'index.html')

#前端反向解析有名分组
<h1><a href="{% url 'test'  year=2023 %}">这是一个快捷键</a></h1>
#无名分组解析
<h1><a href="{% url 'test'  2023 %}">这是一个快捷键</a></h1>

路由分发

就是有多个app应用
    path('app01/',include('app01.urls1')),
    path('app02/',include('app02.urls2')),
    path('app03/',include('app03.urls3')),

http://127.0.0.1:8000/app02/test2/
posted @   家购诗  阅读(3)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示