Django之无名分组和有名分组的实现
在Django的url路由中,我们可以通过使用正则表达式来匹配不同的url地址,并且通过分组的方式将匹配到的信息提取出来,这就是Django的分组功能,分组的方式可以分为无名分组和有名分组。
无名分组
无名分组即为不特别指定分组名称的分组方式,使用()
来进行分组,$1、$2等都是分组的引用,这种引用方式不直观,难以辨别,所以一般不建议使用无名分组。
示例:
from django.conf.urls import url
def myview(request, param):
return HttpResponse(param)
urlpatterns = [
url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$', myview),
]
有名分组
有名分组即为显式指定分组名称的方式,使用(?P<name>)
来命名分组,然后使用(?P=name)
来引用分组。
示例:
from django.conf.urls import url
def myview(request, year, month, day):
return HttpResponse(year + "-" + month + "-" + day)
urlpatterns = [
url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$', myview),
]
上面的示例中,使用了有名分组的方式,它将年份、月份和日期分别命名为year
、month
和day
,在视图函数中,我们可以直接使用这些分组变量。
总结
有名分组相比于无名分组,虽然写起来稍微麻烦一些,但是在视图函数中使用分组变量时更加直观,建议使用有名分组。
另外,需要注意的是,在url中分组的顺序必须与视图函数参数的顺序保持一致。
以上就是Django之无名分组和有名分组的实现示例,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django之无名分组和有名分组的实现 - Python技术站