一个方便的特性是你可以给一个视图指定默认的参数。 这样,当没有给这个参数赋值的时候将会使用默认的值。
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# urls.py
from django.conf.urls.defaults import *
from mysite import views
urlpatterns = patterns('',
(r '^blog/$' , views.page),
(r '^blog/page(?P<num>\d+)/$' , views.page),
)
# views.py
def page(request, num = '1' ):
# Output the appropriate page of blog entries, according to num.
# ...
|
在这里,两个URL表达式都指向了同一个视图 views.page ,但是第一个表达式没有传递任何参数。 如果匹配到了第一个样式, page() 函数将会对参数 num 使用默认值 "1" ,如果第二个表达式匹配成功, page() 函数将使用正则表达式传递过来的num的值。
(注:我们已经注意到设置默认参数值是字符串 `` ‘1'`` ,不是整数`` 1`` 。为了保持一致,因为捕捉给`` num`` 的值总是字符串。
就像前面解释的一样,这种技术与配置选项的联用是很普遍的。 以下这个例子比提供视图配置选项一节中的例子有些许的改进。
1
2
3
|
def my_view(request, template_name = 'mysite/my_view.html' ):
var = do_something()
return render_to_response(template_name, { 'var' : var})
|