2011-04-13 70 views
0

我正在创建一个wiki应用程序。当我在urls.py中为我的应用程序创建url时,我收到了语法错误消息。我不擅长正则表达式。Django URL语法错误

这里是我的代码,

(r'wikicamp/(?<page_name>[^/]+)/edit/$', 'wikicamp.wiki.views.edit_page'), 
(r'wikicamp/(?<page_name>[^/]+)/save/$', 'wikicamp.wiki.views.save_page'), 
(r'wikicamp/(?<page_name>[^/]+)/$', 'wikicamp.wiki.views.view_page'), 

而且我的错误是,

error at/
syntax error 
Request Method: GET 
Request URL: http://127.0.0.1:8000/ 
Django Version: 1.2.5 
Exception Type: error 
Exception Value:  
syntax error 
Exception Location: /usr/lib/python2.6/re.py in _compile, line 245 
Python Executable: /usr/bin/python 
Python Version: 2.6.6 
Python Path: ['/home/ztron/wikicamp', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0'] 
Server time: Wed, 13 Apr 2011 15:21:18 -0500 

这有什么错在正则表达式?我没有读过Django文档,但仍然不知道。

谢谢!

回答

4

您命名的捕获组缺少'P'。做到像这样:

(r'wikicamp/(?P<page_name>[^/]+)/edit/$', 'wikicamp.wiki.views.edit_page'), 
(r'wikicamp/(?P<page_name>[^/]+)/save/$', 'wikicamp.wiki.views.save_page'), 
(r'wikicamp/(?P<page_name>[^/]+)/$', 'wikicamp.wiki.views.view_page'), 
+0

的P是语法的蟒蛇特定位这表明这是“python命名组”,我记得。 – Soviut 2011-04-13 20:42:58

+0

@Soviut:您也可以在PHP中使用此语法(以及使用优秀[PCRE](http://www.pcre.org/“Philip Hazel”)库)的任何其他工具。 – ridgerunner 2011-04-13 20:47:49