Django URL 语法错误
我正在创建一个维基应用程序。当我在urls.py文件中为我的应用程序创建网址时,出现了语法错误的信息。我对正则表达式不太熟悉。
这是我的代码,
(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的文档,但还是不太明白。
谢谢!
2 个回答
0
根据这个链接,命名组的语法是这样的:
(?P<name>...)
这意味着你应该有:
(r'wikicamp/(?P<page_name>[^/]+)/edit/$', 'wikicamp.wiki.views.edit_page'),
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'),