Python Django 命名空间模式的实现
作者:Sch01aR# 发布时间:2023-10-06 05:34:28
标签:python,django,命名,空间,模式
新建一个项目 app02
在 app02/ 下创建 urls.py:
from django.conf.urls import url
from app02 import views
urlpatterns = [
url(r'^blog/', views.test, name="blog"),
]
app01/urls.py:
from django.conf.urls import url
from app01 import views
urlpatterns = [
url(r'^blog/', views.blog, name="blog"),
]
这两个都有 blog/ 路径,且都名为 blog,访问的话就不知道该访问哪一个
这时候需要用到命名空间
在 templates 目录下创建 /books/blog.html 和 /news/blog.html
app01/views.py:
from django.shortcuts import render
def test(request):
return render(request, "test.html")
def blog(request):
return render(request, "news/blog.html") # news 前不要加 /
app02/views.py:
from django.shortcuts import render
def test(request):
return render(request, "books/blog.html") # books 前不要加 /
mysite2/urls.py:
from django.conf.urls import url, include
from app01 import views
from app01 import urls as app01_urls
from app02 import urls as app02_urls
urlpatterns = [
url(r'^test/', views.test),
url(r'^blog/', include(app01_urls, namespace="news")),
url(r'^blog/', include(app02_urls, namespace="books")),
]
test.html:
<a href="{% url 'books:blog' %}" rel="external nofollow" >书籍</a>
<a href="{% url 'news:blog' %}" rel="external nofollow" >新闻</a>
这里用的是 namespace_name 格式来获取 url 路径
访问:http://127.0.0.1:8000/test/
点击“新闻”
跳到了:http://127.0.0.1:8000/blog/blog/,返回的是 /news/blog.html 页面
来源:https://www.cnblogs.com/sch01ar/p/11285735.html


猜你喜欢
- 前言:Echarts 是百度开源的一款数据可视化 JS 工具,数据可视化类型十分丰富,但是得通过导入 js 库在 Java Web 项目上运
- 1、ModuleNotFoundError: No module named ‘scipy.spatial.transf
- 本文实例分析了Python中的对象,方法,类,实例,函数用法。分享给大家供大家参考。具体分析如下:Python是一个完全面向对象的语言。不仅
- 1. 前言由于公司的一个项目是基于B/S架构与WEB服务通信,使用XML数据作为通信数据,在添加新功能时,WEB端与客户端分别由不同的部门负
- 最近,同事需要从数个表中查询用户的业务和报告数据,写了一个SQL语句,查询比较慢:Select S.Name,S.AccountantCod
- 前言众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错。如以下的代码:
- 针对现在大部分的网站都是使用js加密,js加载的,并不能直接抓取出来,这时候就不得不适用一些三方类库来执行js语句execjs,一个比较好用
- 本文实例讲述了mysql共享锁与排他锁用法。分享给大家供大家参考,具体如下:mysql锁机制分为表级锁和行级锁,本文就和大家分享一下我对my
- 举例吧,这样更容易看的懂。例1:from django.core.exceptions import ObjectDoesNotExistt
- 背景在微信分享开发的时候我们通常的流程是 <?php require_once "jssdk.php"; $jss
- Python最近挺火呀,比鹿晗薛之谦还要火,当然是在程序员之间。下面我们看看有关Python的相关内容。上一篇文章我们已经介绍了部分Pyth
- 一、起源 因子分析的起源是这样的:1904年英
- Oracle 背景资料 在介绍 Oracle9i 之前我们先介绍一些关于Oracle 公司的资料,让各位朋友更多了解 Oracle。 197
- eval()函数eval() 函数用来执行一个字符串表达式,并返回表达式的值。语法eval(expression[, globals[, l
- YUI3.2.0 的 transition 模块,通过使用 transition:end 事件实现在 transition 完成后执行其他操
- 之所以说”使用”而不是”实现”,是因为python的相关类库已经帮我们实现了具体算法,而我们只要学会使用就可以了。随着对技术的逐渐掌握及积累
- 如下所示:#待处理列表A= [1,2,3,4,5]#移动次数a = 3右移比较简单for i in range(a): A.insert(0
- python将字符串转换成数组的方法。分享给大家供大家参考。具体实现方法如下:#------------------------------
- 如果想读取用 open() 函数打开的文件中的内容,除了可以使用 read() 函数,还可以使用 readline() 和 readline
- 本文介绍了一个较为通用的获取 checkbox 值的方法,希望对新手有用。<script type="text/javasc