Python Django 命名空间模式的实现


Posted in Python onAugust 09, 2019

新建一个项目 app02

Python Django 命名空间模式的实现

在 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

Python Django 命名空间模式的实现

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/

Python Django 命名空间模式的实现

点击“新闻”

Python Django 命名空间模式的实现

跳到了:http://127.0.0.1:8000/blog/blog/,返回的是 /news/blog.html 页面

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 布尔操作实现代码
Mar 23 Python
Python简单日志处理类分享
Feb 14 Python
python 多线程实现检测服务器在线情况
Nov 25 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
Python+matplotlib实现填充螺旋实例
Jan 15 Python
Python实现获取邮箱内容并解析的方法示例
Jun 16 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 Python
python装饰器练习题及答案
Nov 01 Python
Python3如何在Windows和Linux上打包
Feb 25 Python
pandas 实现将NaN转换为None
May 14 Python
Python OpenGL基本配置方式
May 20 Python
Mac安装python3的方法步骤
Aug 09 #Python
对python 树状嵌套结构的实现思路详解
Aug 09 #Python
Python  Django 母版和继承解析
Aug 09 #Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
Aug 09 #Python
python实现BP神经网络回归预测模型
Aug 09 #Python
Django ORM 聚合查询和分组查询实现详解
Aug 09 #Python
解决Django后台ManyToManyField显示成Object的问题
Aug 09 #Python
You might like
多文件上传的例子
2006/10/09 PHP
我的论坛源代码(三)
2006/10/09 PHP
PHP 文件上传全攻略
2010/04/28 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
php合并数组中相同元素的方法
2014/11/13 PHP
input 高级限制级用法
2009/03/26 Javascript
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
JQuery基础语法小结
2015/02/27 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
Python字符串中查找子串小技巧
2015/04/10 Python
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
python调用fortran模块
2016/04/08 Python
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
在python里从协程返回一个值的示例
2019/02/19 Python
python批量下载抖音视频
2019/06/17 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
linux面试题参考答案(1)
2016/01/22 面试题
掌上明珠Java程序员面试总结
2016/02/23 面试题
“四风”问题整改措施和努力方向
2014/09/20 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
2016党员党课心得体会
2016/01/07 职场文书