Django URLconf 高级用法详解
1. 命名组的优缺点
命名组虽然在简洁性上有所牺牲,部分开发者认为其语法不够美观且过于冗长。但它具有良好的可读性,对于不太熟悉正则表达式或特定 Django 应用的人来说,使用命名组的 URLconf 能让人一眼看清其工作原理。
2. 匹配/分组算法
在 URLconf 中使用命名组时,有一个注意事项:单个 URLconf 模式不能同时包含命名组和非命名组。若这样做,Django 虽不会报错,但 URL 匹配可能不符合预期。URLconf 解析器在处理正则表达式中的命名组和非命名组时,遵循以下算法:
- 若存在命名参数,将使用这些参数,忽略非命名参数。
- 若不存在命名参数,将所有非命名参数作为位置参数传递。
- 两种情况下,都会将额外选项作为关键字参数传递。
3. 向视图函数传递额外选项
有时编写的视图函数非常相似,仅有细微差别。例如,有两个视图除使用的模板不同外,内容完全相同:
# 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 render_to_response
from mysite.models impo
超级会员免费看
订阅专栏 解锁全文
278

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



