Django中URLconf和include()的协同工作方法


Posted in Python onJuly 20, 2015

捕获的参数如何和include()协同工作

一个被包含的URLconf接收任何来自parent URLconfs的被捕获的参数,比如:

# root urls.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',
 (r'^(?P<username>\w+)/blog/', include('foo.urls.blog')),
)

# foo/urls/blog.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',
 (r'^$', 'foo.views.blog_index'),
 (r'^archive/$', 'foo.views.blog_archive'),
)

在这个例子中,被捕获的 username 变量将传递给被包含的 URLconf,进而传递给那个URLconf中的 每一个 视图函数。

注意,这个被捕获的参数 总是 传递到被包含的URLconf中的 每一 行,不管那些行对应的视图是否需要这些参数。 因此,这个技术只有在你确实需要那个被传递的参数的时候才显得有用。
额外的URLconf如何和include()协同工作

相似的,你可以传递额外的URLconf选项到 include() , 就像你可以通过字典传递额外的URLconf选项到普通的视图。 当你这样做的时候,被包含URLconf的 每一 行都会收到那些额外的参数。

比如,下面的两个URLconf在功能上是相等的。

第一个:

# urls.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',
 (r'^blog/', include('inner'), {'blogid': 3}),
)

# inner.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',
 (r'^archive/$', 'mysite.views.archive'),
 (r'^about/$', 'mysite.views.about'),
 (r'^rss/$', 'mysite.views.rss'),
)

第二个

# urls.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',
 (r'^blog/', include('inner')),
)

# inner.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',
 (r'^archive/$', 'mysite.views.archive', {'blogid': 3}),
 (r'^about/$', 'mysite.views.about', {'blogid': 3}),
 (r'^rss/$', 'mysite.views.rss', {'blogid': 3}),
)

这个例子和前面关于被捕获的参数一样(在上一节就解释过这一点),额外的选项将 总是 被传递到被包含的URLconf中的 每一 行,不管那一行对应的视图是否确实作为有效参数接收这些选项,因此,这个技术只有在你确实需要那个被传递的额外参数的时候才显得有用。 因为这个原因,这种技术仅当你确信在涉及到的接受到额外你给出的选项的每个URLconf时有用的才奏效。

Python 相关文章推荐
python3.3实现乘法表示例
Feb 07 Python
Python实现简单的语音识别系统
Dec 13 Python
Python如何生成树形图案
Jan 03 Python
Python实现PS图像调整颜色梯度效果示例
Jan 25 Python
Python高级用法总结
May 26 Python
python opencv人脸检测提取及保存方法
Aug 03 Python
浅谈python下tiff图像的读取和保存方法
Dec 04 Python
NumPy排序的实现
Jan 21 Python
对Tensorflow中Device实例的生成和管理详解
Feb 04 Python
pytorch torchvision.ImageFolder的用法介绍
Feb 20 Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 Python
在Python的Django框架中包装视图函数
Jul 20 #Python
Django中URL视图函数的一些高级概念介绍
Jul 20 #Python
Python的Django框架中从url中捕捉文本的方法
Jul 20 #Python
Django框架中处理URLconf中特定的URL的方法
Jul 20 #Python
在Django中创建URLconf相关的通用视图的方法
Jul 20 #Python
python通过socket查询whois的方法
Jul 18 #Python
Python字符串匹配算法KMP实例
Jul 18 #Python
You might like
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
php实现的css文件背景图片下载器代码
2014/11/11 PHP
php文件压缩之PHPZip类用法实例
2015/06/18 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
PHP7变量处理机制修改
2021/03/09 PHP
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
利用JS进行图片的切换即特效展示图片
2013/12/03 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
ES6的Fetch异步请求的实现方法
2018/12/07 Javascript
bootstrap table实现合并单元格效果
2018/12/24 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
Python生成随机数的方法
2014/01/14 Python
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
详解python 发送邮件实例代码
2016/12/22 Python
Python如何实现MySQL实例初始化详解
2017/11/06 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
使用python制作一个解压缩软件
2019/11/13 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
英国领先的在线高尔夫设备零售商:Golfgeardirect
2020/12/11 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
2015/05/29 面试题
项目申报专员岗位职责
2014/07/09 职场文书
2014年光棍节活动策划方案(创意集锦)
2014/09/29 职场文书
2014年党务工作总结
2014/11/25 职场文书
顶岗实习计划书
2015/01/16 职场文书
本溪关门山导游词
2015/02/09 职场文书
2016年校园植树节广播稿
2015/12/17 职场文书
检讨书之工作不认真
2019/08/14 职场文书
Linux中sftp常用命令整理
2022/06/28 Servers