2011-04-13 41 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