Django URL 分发
2016-03-15 17:36
225 查看
- 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)
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)
相关文章推荐
- AlphaGo最终局战胜李世石
- AlphaGo最终局战胜李世石
- Windows下面替换命令实现,最新修复一个BUG
- mongo集群分片如何添加认证密码
- 去掉Googl默认界面的logo下面的尴尬的文字,对面的菇凉请看过来!!!
- django filter 中使用 or (django中Q)
- 当View为GONE状态时获取View的宽高
- CodeForces#5A. Chat Server's Outgoing Traffic
- AlphaGo:黑色方碑?
- lightoj 1030 Discovering Gold 概率dp求期望
- mongo 删除内嵌数组元素
- Go语言核心之美 1.3-赋值及类型声明篇
- Django路由系统
- 科普:alphago是什么
- 【Google Earth】使用GPS数据gpx创建航迹
- [Canvas绘图] 第34节 藏图阁(14) AlphaGo与李世石的围棋大战之第四局
- 基于go-ceph创建CEPH块设备及快照
- Go语言以匿名组合的方式实现继承
- sougou word library TXT download
- Go语言学习笔记