【问题标题】:Meaning of '^site_media/(?P<path>.*)$''^site_media/(?P<path>.*)$' 的含义
【发布时间】:2011-11-15 15:27:17
【问题描述】:
# 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>.*)$'

这到底是什么意思?

谢谢

// ========== 根据 cmets 更新 ===============

参考:Name Groups

在 Python 正则表达式中,命名正则表达式的语法 groups 是 (?P&lt;name&gt;pattern),其中 name 是组的名称,并且 pattern 是一些要匹配的模式。

比较:

方法一>

(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'),

方法二>

(r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'),

/articles/2005/03/ 的请求将调用该函数

news.views.month_archive(request, '2005', '03').

【问题讨论】:

  • 你有机会完成本教程吗?
  • 另外,你懂正则表达式吗?如果没有,现在是了解它们的时候了。 regular-expressions.info
  • @Jordan,我知道 RE,但我有问题要理解 (?P&lt;path&gt;.*)
  • 哦,?P 只是表示“一个命名的 RE 组即将出现”,&lt;path&gt; 表示该组的名称是 path。所以在模式匹配之后,.* 部分在 kwargs 中可用,名称为path

标签: python regex django


【解决方案1】:

网址在the docs中有很好的解释

【讨论】:

    【解决方案2】:

    (?P&lt;path&gt;.*) 是一个命名组。 http://docs.python.org/library/re.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 2015-07-16
      • 1970-01-01
      相关资源
      最近更新 更多