Django的URLconf中使用缺省视图参数的方法
一个方便的特性是你可以给一个视图指定默认的参数。这样,当没有给这个参数赋值的时候将会使用默认的值。
例子:
#urls.py fromdjango.conf.urls.defaultsimport* frommysiteimportviews urlpatterns=patterns('', (r'^blog/$',views.page), (r'^blog/page(?P<num>\d+)/$',views.page), ) #views.py defpage(request,num='1'): #Outputtheappropriatepageofblogentries,accordingtonum. #...
在这里,两个URL表达式都指向了同一个视图views.page,但是第一个表达式没有传递任何参数。如果匹配到了第一个样式,page()函数将会对参数num使用默认值"1",如果第二个表达式匹配成功,page()函数将使用正则表达式传递过来的num的值。
(注:我们已经注意到设置默认参数值是字符串``‘1'``,不是整数``1``。为了保持一致,因为捕捉给``num``的值总是字符串。
就像前面解释的一样,这种技术与配置选项的联用是很普遍的。以下这个例子比提供视图配置选项一节中的例子有些许的改进。
defmy_view(request,template_name='mysite/my_view.html'): var=do_something() returnrender_to_response(template_name,{'var':var})