Python Django 命名空间模式的实现

yipeiwu_com6年前Python基础

新建一个项目 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 页面

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python return逻辑判断表达式实现解析

这篇文章主要介绍了python return逻辑判断表达式实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.return逻辑...

深入浅析Python中的yield关键字

前言 python中有一个非常有用的语法叫做生成器,所利用到的关键字就是yield。有效利用生成器这个工具可以有效地节约系统资源,避免不必要的内存占用。 一段代码 def fun()...

Python使用ctypes调用C/C++的方法

python使用ctypes调用C/C++ 1. ctpes介绍 ctypes is a foreign function library for Python. It provides...

pycharm 批量修改变量名称的方法

pycharm 批量修改变量名称的方法

当代码已经写得差不多,发现某个变量名需要修改,但代码中很多地方都有该变量,一一修改太麻烦了,在不同的情景下,可以采取更加简便的方法,如下介绍: 方法一:rename方法 S1 把光标移动...

在Python中使用CasperJS获取JS渲染生成的HTML内容的教程

文章摘要:其实这里casperjs与python没有直接关系,主要依赖casperjs调用phantomjs webkit获取html文件内容。长期以来,爬虫抓取 客户端javascri...