Django URLconf高级用法详解
1. 命名组的优缺点
命名组在正则表达式中有着独特的优势,它能提高代码的可读性,尤其是对于那些不太熟悉正则表达式或者特定Django应用的开发者来说。不过,它也有缺点,就是会牺牲一定的简洁性,有些开发者认为命名组的语法比较丑陋且过于冗长。
1.1 匹配/分组算法
在URLconf中使用命名组时,有一个需要注意的地方:单个URLconf模式不能同时包含命名组和非命名组。如果这样做,Django不会抛出错误,但URL的匹配可能不会如你预期。URLconf解析器在处理正则表达式中的命名组和非命名组时,遵循以下算法:
- 如果有命名参数,将使用这些命名参数,忽略非命名参数。
- 否则,将所有非命名参数作为位置参数传递。
- 在这两种情况下,都会将任何额外的选项作为关键字参数传递。
2. 向视图函数传递额外选项
有时候,我们会编写一些非常相似的视图函数,只是有一些小的差异。例如,有两个视图,除了使用的模板不同外,内容完全相同。
2.1 初始代码示例
# urls.py
from django.conf.urls.defaults import *
from mysite import views
urlpatterns = patterns('',
(r'^foo/$', views.foo_view),
(r'^bar/$', views.bar_view),
)
# views.py
from django.shortcuts import r
超级会员免费看
订阅专栏 解锁全文
33

被折叠的 条评论
为什么被折叠?



