Django基础之命名空间模式(include)
2024-09-05 08:27:31
即使不同的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。
最新文章
- 《如何在大学里脱颖而出(How to Win at College)》读书笔记
- iOS黑客技术相关
- LeetCode&mdash;&mdash;Rotate Image(二维数组顺时针旋转90度)
- 打造高质量Android应用:Android开发必知的50个诀窍
- MYSQL--事务处理
- 一天一个Java基础——序列化
- 【strtok()】——分割字符串
- MAC 上传文件到github
- openstack安装系列问题:window7 64位安装的virtualBox 只能选择32位的系统安装不能选择64位的系统安装
- 项目(七)SVN版本管理与大型代码上线方案
- Confluence 6 从生产环境中恢复一个测试实例
- dajpper使用教程
- Android学习之基础知识十六 — Android开发高级技巧的掌握
- CSS三:CSS的三种引入方式
- matlab中如何将视频保存成图像
- SVN Attempted to lock an already-locked dir异常解决方法
- ios instancetype 和 id 的异同
- PAT 1042 字符统计(20)(思路)
- centos中添加php扩展pdo_mysql步骤
- Swift的函数与函数指针、闭包Closure等相关内容介绍