提供视图配置选项
如果你发布一个Django的应用,你的用户可能会希望配置上能有些自由度。 这种情况下,为你认为用户可能希望改变的配置选项添加一些钩子到你的视图中会是一个很好的主意。 你可以用额外URLconf参数实现。
一个应用中比较常见的可供配置代码是模板名字:
def my_view(request, template_name): var = do_something() return render_to_response(template_name, {'var': var})
登录后复制
了解捕捉值和额外参数之间的优先级 额外的选项
当冲突出现的时候,额外URLconf参数优先于捕捉值。 也就是说,如果URLconf捕捉到的一个命名组变量和一个额外URLconf参数包含的变量同名时,额外URLconf参数的值会被使用。
立即学习“Python免费学习笔记(深入)”;
例如,下面这个URLconf:
from django.conf.urls.defaults import *from mysite import viewsurlpatterns = patterns('', (r'^mydata/(?Pd+)/$', views.my_view, {'id': 3}),)
登录后复制
这里,正则表达式和额外字典都包含了一个 id 。硬编码的(额外字典的) id 将优先使用。 就是说任何请求(比如, /mydata/2/ 或者 /mydata/432432/ )都会作 id 设置为 3 对待,不管URL里面能捕捉到什么样的值。
聪明的读者会发现在这种情况下,在正则表达式里面写上捕捉是浪费时间的,因为 id 的值总是会被字典中的值覆盖。 没错,我们说这个的目的只是为了让你不要犯这样的错误。
调试模式中的特例
说到动态构建 urlpatterns,你可能想利用这一技术,在 Django 的调试模式下修改 URLconf 的行为。 为了做到这一点,只要在运行时检查 DEBUG 配置项的值即可,如:
from django.conf import settingsfrom django.conf.urls.defaults import *from mysite import viewsurlpatterns = patterns('', (r'^$', views.homepage), (r'^(d{4})/([a-z]{3})/$', views.archive_month),)if settings.DEBUG: urlpatterns += patterns('', (r'^debuginfo/$', views.debug), )
登录后复制
在这个例子中,URL链接/debuginfo/ 只在你的 DEBUG 配置项设为 True 时才有效。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2300398.html