这是我的代码:
(r'^q/(?P<terminal_id>[^/]+)/(?P<cmd_type>[^/]+)/?$', 'send_query_cmd'),
视图是:
def send_query_cmd(request, terminal_id, cmd_type):
?p
是什么意思。
我不知道这个网址是什么意思,谢谢
答案 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