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实现读Excel写入.txt的方法

因为今天要用到把Excel中的数据写入到.txt文件中,所以简单的写了个代码: import numpy as np import xlrd #打开excel文件 data= x...

Python字符串处理实现单词反转

Python字符串处理学习中,有一道简单但很经典的题目,按照单词对字符串进行反转,并对原始空格进行保留: 如:‘ I love China! ‘ 转化为:‘ China! love...

使用python检测主机存活端口及检查存活主机

使用python检测主机存活端口及检查存活主机

监测主机存活的端口 #!/usr/bin/env python # coding-utf import argparse import socket import sys #auth...

使用Python实现在Windows下安装Django

使用Python实现在Windows下安装Django

依赖 安装Python 安装git 安装Django 1.去Python官网下载Python3.6并配置好环境变量 Python下载地址:https://www.py...

python原类、类的创建过程与方法详解

今天为大家介绍一下python中与class 相关的知识…… 获取对象的类名 python是一门面向对象的语言,对于一切接对象的python来说,咱们有必要深入的学习与了解一...