路由匹配与无名/有名分组
路由匹配
# 路由匹配 url(r'test',views.test), url(r'testadd',views.testadd) """ url方法第一个参数是正则表达式 只要第一个参数正则表达式能够匹配到内容 那么就会立刻停止往下匹配 直接执行对应的视图函数 你在输入url的时候会默认加斜杠 django内部帮你做到重定向 一次匹配不行 url后面加斜杠再来一次 """ # 取消自动加斜杠 APPEND_SLASH = False/True # 默认是自动加斜杠的 urlpatterns = [ url(r'^admin/', admin.site.urls), # 首页 url(r'^$',views.home), # 路由匹配 url(r'^test/$',views.test), url(r'^testadd/$',views.testadd), # 尾页(了解) url(r'',views.error), ]
无名分组
""" 分组:就是给某一段正则表达式用小括号扩起来 """ url(r'^test/(\d+)/',views.test) def test(request,xx): print(xx) return HttpResponse('test') # 无名分组就是将括号内正则表达式匹配到的内容当作位置参数传递给后面的视图函数
有名分组
""" 可以给正则表达式起一个别名 """ url(r'^testadd/(?P<year>\d+)',views.testadd) def testadd(request,year): print(year) return HttpResponse('testadd') # 有名分组就是将括号内正则表达式匹配到的内容当作关键字参数传递给后面的视图函数
无名有名分组是否可以混用
""" 嘻嘻 不能混用 但是同一个分组可以使用N多次 """ # 单个的分组可以使用多次 url(r'^index/(\d+)/(\d+)/(\d+)/',views.index), url(r'^index/(?P<year>\d+)/(?P<age>\d+)/(?P<month>\d+)/',views.index),