- url => views函數調用(位置參數)
urlpatterns = [
url(r'^articles/2003/$', views.special_case_2003),
url(r'^articles/([0-9]{4})/$', views.year_archive),
url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
]
/articles/2005/03/ => views.month_archive(request, '2005', '03')
/articles/2005/3/ => error: 需要匹配兩位整數
/articles/2003/ => views.special_case_2003(request)
/articles/2003 => error: 需要以/結束
/articles/2003/03/03/ => views.article_detail(request, '2003', '03', '03')
- url => views函數調用(命名參數 (?P<name>pattern))
urlpatterns = [
url(r'^articles/2003/$', views.special_case_2003),
url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive),
url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$', views.article_detail),
]
/articles/2005/03/ => views.month_archive(request, year='2005', month='03')
/articles/2003/03/03/ => views.article_detail(request, year='2003', month='03', day='03')
- url中所有捕獲的參數以string形式傳遞
- 在view中爲url設置默認參數
urlpatterns = [
url(r'^blog/$', views.page),
url(r'^blog/page(?P<num>[0-9]+)/$', views.page),
]
# blog/views.py
def page(request, num="1"): # 爲第一個匹配模式設置默認值
- 傳遞額外參數到view函數
urlpatterns = [
url(r'^blog/(?P<year>[0-9]{4})/$', views.year_archive, {'foo': 'bar'}),
]
/blog/2005/ => views.year_archive(request, year='2005', foo='bar')
- Django快捷函數
render(request, template_name, context=None, context_instance=_context_instance_undefined, content_type=None,
status=None, current_app=_current_app_undefined, dirs=_dirs_undefined, using=None)
render_to_response(template_name, context=None, context_instance=_context_instance_undefined, content_type=None,
status=None, dirs=_dirs_undefined, using=None)
redirect(to, permanent=False, *args, **kwargs)
get_object_or_404(klass, *args, **kwargs)
get_list_or_404(klass, *args, **kwargs)