Django的网址正则表达式查询字符串
以下是从urls.py:Django的网址正则表达式查询字符串
url(r'^\?view=(?P<vtype>instructor|course|room)$', 'index', name='index'),
我可以验证它的工作原理是简单地在外壳调用django.core.urlresolvers.reverse:
In [6]: reverse('index', args=["course"])
Out[6]: '/?view=course'
但当我尝试访问http://localhost:8000/?view=course 我得到了404个。
我在做什么错在这里?
感谢
编辑:
url('^search/\?user=(?P<userid>\d+)&type=topic', 'search_forum', name='my_topics'),
这是因为预计该工程前项目。叹...
查询字符串不是URL的一部分。如果你想这样做,你必须使用url(r'^$', 'index', name='index')
然后在request.GET字典中查看它。
然而,通常的方法是使用url(r'(?P<vtype>instructor|course|room)/$', 'index', name='index')
。 querystring方法是通常的解决方法,不能根据非查询字符串URL部分来引导请求。 Django没有这个限制。
最终有两个url正则表达式。谢谢 – hinoglu 2011-05-15 21:15:21
您的正则表达式匹配从开始(^),但我没有看到任何匹配前导'/'的东西。这可能吗?
不幸的是,not.django的url调度程序解决了根/之后的部分。但我试过,如果这可能是它,但没有运气:) – hinoglu 2011-05-15 20:58:41
你有什么应该为该URL回答吗? – 2011-05-15 20:49:47
是的,index()通常没有正则表达式。但添加查询字符串正则表达式打破了URL调度。正如你所提到的, – hinoglu 2011-05-15 20:52:21