大家好,
此表达式实际的工作原理是什么?
urlpatterns = patterns('',
url(r'^get/(?P<app_id>\d+)/$', 'app.views.app'),
...
)
我了解做了什么,至少要将用户输入的网址映射到应用视图页面中的app()
功能。我也理解这是一个正则表达式,最终获取应用程序的ID并将其映射到URL。但是这个功能在哪里? r'^ ...发生了什么?P / $(我得到d +是一个数字正则表达式,id本身,但就是这样)。
我也理解这个url函数来自django.conf.urls
模块。
也许我的误解更多地掩盖了我缺乏正则表达式的经验。尽管如此,我需要帮助!我不喜欢使用我不理解的东西,我很内疚。
答案 0 :(得分:4)
我们来看看:r'^get/(?P<app_id>\d+)/$'
r''
表示将字符串中的每个字符作为字符串字符引用。^
字符表示正则表达式的开头。例如,forget/123
与表达式不匹配,因为它不以get
开头,如果符号不在那里,它应该匹配它,因为它不会强制匹配的字符串以get
开头,只是get...
出现在字符串中。$
字符表示表达式的结尾。如果不存在,get/123/xd
可能与表达式匹配,这是不可取的。(?P<>)
是一种为表达式中的组提供名称/别名的方法。您应该阅读the python's regular expressions documentation。了解正则表达式非常好,因为它们非常有用。
希望这有帮助!
答案 1 :(得分:1)
r
只会更改以下字符串文字的解释方式。反斜杠(\
)不被视为转义序列,这意味着字符串中的正则表达式将按原样使用。
^
,最后匹配的$
和字符串的结尾。
(?P<name>...)
是一个保存命名组 - 它可以帮助您剪切网址的一部分并将其作为参数传递到视图中。在django named groups docs中查看更多内容。
希望有所帮助。