这个网址在django中是什么意思

时间:2011-02-18 01:52:54

标签: python regex django url

这是我的代码:

(r'^q/(?P<terminal_id>[^/]+)/(?P<cmd_type>[^/]+)/?$', 'send_query_cmd'),

视图是:

def send_query_cmd(request, terminal_id, cmd_type):

?p是什么意思。

我不知道这个网址是什么意思,谢谢

2 个答案:

答案 0 :(得分:5)

(?P<id>REGEXP)是名为group capture的python正则表达式的语法。 http://docs.python.org/library/re.html - &gt;&gt;向下滚动到(?P...

P代表什么参数?蟒蛇? Origin很有趣。

无论如何,这些相同的正则表达式是django URL解析器用于将URL与视图匹配,以及将命名组捕获为视图函数的参数。 http://docs.djangoproject.com/en/dev/topics/http/urls/#captured-parameters

最简单的例子是:

(r'^view/(?P<post_number>\d+)/$', 'foofunc'),

# we're capturing a very simple regular expression \d+ (any digits) as post_number 
# to be passed on to foofunc

def foofunc(request, post_number):
    print post_number

# visiting /view/3 would print 3. 

答案 1 :(得分:0)

它来自Python regular expression syntax。 (?P ...)语法是一个命名组。这意味着匹配的文本可以使用给定的名称,或者在视图函数中使用Django作为命名参数。如果您只使用带有?P的括号,那么它就是一个未命名的组,并且可以使用整数来表示该组的捕获顺序。

您的网址正则表示以下内容......

^ - match the start of the string
q/ - match a q followed by a slash
(?P<terminal_id>[^/]+) - match at least one character that isn't a slash, give it the name terminal_id
/ - match a slash
(?P<cmd_type>[^/]+) - match at least one character that isn't a slash, give it the name cmd_type
/? - optionality match a slash
$ - match the end of the string