一個方便的特性是你可以給一個視圖指定默認的參數。 這樣,當沒有給這個參數賦值的時候將會使用默認的值。
例子:
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}) |