1

大家好

这个表达式实际上是如何工作的?


urlpatterns = patterns('', 
   url(r'^get/(?P<app_id>\d+)/$', 'app.views.app'),
   ...
)

我了解它的作用,至少将用户输入的urlapp()映射到应用程序视图页面中的功能。我也明白这是一个正则表达式,最终会获取应用程序的 id 并将其映射到 url。但是这个函数要去哪里呢?r'^...?P /$ 发生了什么(我得到 d+ 是 id 本身的数字正则表达式,但仅此而已)。

我也理解这个 url 函数来自django.conf.urls模块。

也许我的误解更多地在于我缺乏正则表达式经验。尽管如此,我需要帮助!我不喜欢使用我不懂的东西,我很内疚

4

2 回答 2

4

让我们来看看:r'^get/(?P<app_id>\d+)/$'

  1. r''意味着将字符串引号内的每个字符都假定为字符串字符。
  2. ^字符表示正则表达式的开头。例如,forget/123不会匹配表达式,因为它不以 开头get,如果符号不存在,它应该匹配它,因为它不会强制匹配的字符串以 开头get,只是get...出现在字符串中.
  3. 字符表示表达式的$结束。如果不存在,get/123/xd则可能与表达式匹配,这是不希望的。
  4. (?P<>)是一种为表达式中的组指定名称/别名的方法。

您应该阅读python 的正则表达式文档。了解正则表达式非常好,因为它们非常有用。

希望这可以帮助!

于 2013-07-25T21:44:43.503 回答
1

r只是更改以下字符串文字的解释方式。反斜杠 ( \) 不被视为转义序列,这意味着字符串中的正则表达式将按原样使用。

^分别在字符串的开头和$结尾匹配和结尾。

(?P<name>...)是一个保存命名组 - 它可以帮助您剪切一部分 url 并将其作为参数传递到视图中。在 django命名组文档中查看更多信息。

希望有帮助。

于 2013-07-25T21:48:32.910 回答