^site_media/(?P<path>.*)$' 的含义是什么?
# urls.py
site_media = os.path.join(os.path.dirname(__file__), 'site_media'
)
urlpatterns = patterns('',
(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': site_media}),
)
我对上面那句话里的表达方式有点困惑。
'^site_media/(?P<path>.*)$'
这到底是什么意思呢?
谢谢你
// ========== 根据评论更新的内容 ==============
参考资料:命名组。
在Python的正则表达式中,命名正则表达式组的语法是 (?P<name>pattern)
,其中name是组的名称,而pattern是要匹配的某种模式。
对比:
方法 1>
(r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/$', 'news.views.month_archive'),
请求 /articles/2005/03/
会调用这个函数:
news.views.month_archive(request, year='2005', month='03')
。
方法 2>
(r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'),
请求 /articles/2005/03/
会调用这个函数:
news.views.month_archive(request, '2005', '03')
。
2 个回答
2
(?P<path>.*)
是一个命名组。简单来说,这个表达式的意思是把匹配到的内容放到一个叫做“path”的盒子里。你可以在这里找到更多信息:http://docs.python.org/library/re.html
3
关于网址(urls)的内容在官方文档中讲得很清楚。