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'),
相关推荐
亮子AI12 分钟前
【Python】比较两个cli库:Click vs Typer
开发语言·python
YDS82914 分钟前
SpringCloud —— MQ的可靠性保障和延迟消息
后端·spring·spring cloud·rabbitmq
CappuccinoRose20 分钟前
流计算概述
python·flink·流计算·数据流·pyflink
Dragon水魅20 分钟前
Fandom Wiki 网站爬取文本信息踩坑实录
爬虫·python
Darkershadow23 分钟前
蓝牙学习之unprovision beacon
python·学习·ble
无限大636 分钟前
为什么"区块链"不只是比特币?——从加密货币到分布式应用
后端
洛神么么哒41 分钟前
freeswitch-初级-01-日志分割
后端
蝎子莱莱爱打怪1 小时前
我的2025年年终总结
java·后端·面试
小龙在山东1 小时前
基于 plumbum 跨平台执行Shell脚本
python
奋进的芋圆1 小时前
TokenRetryHelper 详解与 Spring Boot 迁移方案
java·spring boot·后端