django的URL路由配置常用方式

目录

django路由速查

URL路由配置常用方式:

[基本路由配置 - path()](#基本路由配置 - path())

[应用级路由包含(路由分发) - include()](#应用级路由包含(路由分发) - include())

带参数的路由

[正则表达式路由 - re_path():](#正则表达式路由 - re_path():)

路由命名空间:

传递额外参数:


django路由速查

URL路由配置常用方式:

基本路由配置 - path()

作用:最基本的路由配置使用path()函数

写法位置:主应用url.py或者子应用url.py

语法格式:

1.1.配置路由规则:

python 复制代码
urlpatterns = [

path('路由路径/', view.视图函数, name='视图名称'),

]

1.2.在主/子应用view.py构建对应的视图函数

例如:

python 复制代码
path('home/', home, name='home'),

应用级路由包含(路由分发) - include()

作用:为了更好地组织项目结构,通常会将不同应用的路由配置分离,然后在主路由中使

写法位置:主应用url.py

语法格式:

1.1.主应用路由分发配置路由规则:

python 复制代码
urlpatterns = [

path('路由路径/', include('子应用名称.url模块对象'), name='视图名称'),

]

1.2.子应用配置路由规则url:

python 复制代码
urlpatterns = [

path('路由路径/', view.视图函数, name='视图名称'),

]

1.3.在子应用的view.py构建对应的视图函数

例如:

python 复制代码
path('myapp1/', include("myapp1.urls"), name='myapp1'),

带参数的路由

作用:Django支持在路由中定义参数,参数会传递给视图函数:

写法位置:子应用url.py

语法格式:

1.1.配置路由规则:

python 复制代码
urlpatterns = [

path('路径/<数据类型:变量参数名称>/', view.视图函数, name='视图名称'),

]

1.2.在主/子应用view.py构建对应的视图函数

例如:

python 复制代码
path('list/<int:pk>/', views.getList, name='booksID'),

path('list/<str:slug>/', views.getList, name='booksName'),

正则表达式路由 - re_path():

作用:对于更复杂的路由匹配需求,可以使用re_path()函数,它支持正则表达式:

写法位置:子应用url.py

语法格式:

1.1.配置路由规则:

python 复制代码
urlpatterns = [

re_path(r'^路径/(?P<参数名称>正则表达式)$/', view.视图函数, name='视图名称'),

]

1.2.在子应用view.py构建对应的视图函数

def 视图函数名称(request,参数名称):

使用参数名称----

articles = Article.objects.filter(字段名称__参数名称=参数名称)

例如:

python 复制代码
re_path(r'^student/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', 
views.getStudentList, name='studentInfo')

路由命名空间:

作用:为了避免不同应用间路由名称冲突,可以使用命名空间:

使用:

1.主路由URL配置: path('路由地址/',include( "子路URL", namespace='命名空间'),name='视图名称' ),

2.在子路由URL中添加 app_name="命名空间"

3.在子路由的views中反向解析URL地址:reverse('命名空间:视图名称',args参数)

4.在T模版中 使用 {% url '子应用名称:命名空间' %}

传递额外参数:

作用:可以在路由中传递额外的参数给视图函数

写法位置:子应用url.py

语法格式:

1.1.配置路由规则:

python 复制代码
urlpatterns = [

path('路径/<数据类型:变量参数名称>/', view.视图函数,{'参数名称': '参数值'} name='视图名称'),

]

1.2.在主/子应用view.py构建对应的视图函数

例如:

python 复制代码
path('list/tech', views.getList, {'category': 'tech'}, name='booksID'),
相关推荐
DeepVisionary16 分钟前
为拿并网许可,OpenAI在佐治亚新园区同意高峰期断电三成
python·自动化
掘金者阿豪34 分钟前
SQL Server数据迁移完成后,凌晨的数据库告警该怎么查?
前端·后端
鶴哥只手遮天44 分钟前
AFSIM 2.9.0 深度解析·进阶卷第 1 章 插件源码精读:16 个 WSF 插件的架构与实现
后端
愚农搬码1 小时前
低代码表单与在线问卷不是一回事:产品定位和技术边界
后端
武子康1 小时前
固定时间步已经开了,为什么游戏回放还会走出不同位置?
人工智能·后端·agent
70后写java的老码农1 小时前
换模型只改三行配置:LangChain4j + Spring Boot 3.5 实战,一次分别接入 9 家模型服务
后端·ai编程
VIP_CQCRE1 小时前
内容自动化越跑越乱?先补上状态、去重和失败恢复
python·ai·工作流·幂等设计·内容自动化
愚农搬码1 小时前
2026 年开源表单设计器选型:哪个更好用?
后端
我喜欢就喜欢1 小时前
RAG 重排序 Rerank 实战:用 bge-reranker 把 Top-K 命中率拉回来
python·大模型·向量检索·rag·rerank