Django中的正则表达式urls.py

时间:2012-07-23 23:24:42

标签: regex django django-urls

请帮我修复urls.py 人们建议这样,但它对我不起作用.....

#urls.py
  (r'^/user/(?P<username>)/subject/([\w|\W]+)/$', subject),

#template
 {% for subject in subjects %}
    <li><a href="/user/{{ user.username }}/subject/{{ subject.name }}">{{ subject.name }}</a> {{ del_form.delete }}</li>
 {% endfor %}

#error
PAGE NOT FOUND
Request URL:    http://127.0.0.1:8000/user/root/subject/Math%20140
....
....
^/user/(?P<username>)/subject/([\w|\W]+)/$

1 个答案:

答案 0 :(得分:7)

正则表达式中有错误。如果您不熟悉,请使用正则表达式构建器:

http://ryanswanson.com/regexp/(Perl)

http://www.pyregex.com/(Python)

我想你想要这样的东西:

^user/(?P<username>.+)/subject/([\w|\W]+)/

但您可能希望将“。+”更改为更具限制性的内容:

^user/(?P<username>[^/]+)/subject/([\w|\W]+)/

另请注意,您可能不希望使用前导斜杠 - 由于Django将初始URL提供给URL调度程序的方式。