Django基础之命名空间模式(include)

本文深入解析了Django中URL命名空间的使用方法,通过实例展示了如何在不同应用中使用相同的URL名称,同时确保URL的唯一性和正确反转。适用于解决大型项目中URL命名冲突的问题。

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

即使不同的APP使用相同的URL名称,URL的命名空间模式也可以让你唯一反转命名的URL。 例如:

project中的urls.py

from django.conf.urls import url, include
urlpatterns = [
    url(r"^app01/", include("app01.urls", namespace="app01")),
    url(r"^app02/", include("app02.urls", namespace="app02"))
]

app01中的urls.py

from django.conf.urls import url
from app01 import views

app_name = "app01"
urlpatterns = [
    url(r"^(?P<pk>\d+)/$", views.detail, name="detail1")
]

app02中的urls.py

from django.conf.urls import url
from app02 import views

app_name = "app02"
urlpatterns = [
    url(r"^(P<pk>\d+)/$", views.detail, name="detail1")
]

现在,这两个app中的url名称是重复的,但是反转URL的时候就可以通过命名空间的名称得到当前的URL。

语法:

命名空间名称: URL名称

模板中使用:

{% url "app01:detail" pk=12 pp=99 %}

views中的函数中使用:

v = reverse("app01:detail", kwargs={"pk":11})

这样,即便app中URL的命名相同,也可以反转的得到正确的URL。

 

 

 

转载于:https://www.cnblogs.com/yang-wei/p/9997618.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值