页面未找到(404),Django中的URL映射

时间:2015-08-27 02:56:10

标签: python django

我组成如下的urlpatterns。

url(r'^sktag/(?P<st_char>\w+)/$', views.MW_Tag_Search.as_view(), name='tagSearch')

我在Chrome浏览器中输入了网址。

http://localhost:8000/common/sktag/Engineer(SW)

然后我找不到页面。参见下文

Using the URLconf defined in MW_Service.urls, Django tried these URL patterns, in this order:
1. ^common/ ^sktag/(?P<st_char>\w+)/exclude/(?P<ex_tags>\w+[\+\w+]*)/$ [name='tagSearchV2']
2. ^common/ ^sktag/(?P<st_char>\w+)/$ [name='tagSearch']
...
The current URL, common/sktag/Engineer(SW), didn't match any of these.

我认为&#39;(&#39;或&#39;)&#39;角色会产生这个问题,但我不知道如何解决这个问题。

2 个答案:

答案 0 :(得分:2)

您指定的模式最后需要'/'才能匹配。

http://localhost:8000/common/sktag/Engineer(SW)/ 应该工作。

编辑:

您还需要更新正则表达式以处理括号。有关详细信息,请参阅Python Regular Expressions 文档。

答案 1 :(得分:1)

您需要更改正则表达式以接受括号。目前,\w仅匹配字母a-z,A-Z,数字0-9和下划线。

url(r'^sktag/(?P<st_char>[\w()]+)/$', views.MW_Tag_Search.as_view(), name='tagSearch')

正如约翰在他的回答中提到的那样,你也需要在网址上添加一个斜杠,例如。

http://localhost:8000/common/sktag/Engineer(SW)/