首先,你在url模式中的正则表达式是错误的。
r'^$/(?P<tag>\w+)'
它说,以匹配一切从
- ^线
- $到行
- 具有被后由文字和数字的命名标签模式的结束的开始行结束
通常在一行结束后来另一行或EOF不满足(除非你使用多行正则表达式,你不需要这些)。
线到底应该在标签后:
r'^/(?P<tag>\w+)$'
使用查询字符串
Query strings are not parsed by url reslover.
因此,如果你在格式有网址:
http://mysite.com/?query=param_here
将匹配:
(r'^$', 'twingle.search.views.index')
在这种情况下,您可以访问query
字符串中的观点,像这样:
request.GET.get('query', '')
没有查询字符串
mysite.com/search/param_here
将匹配:
(r'^search/(?P<query>\w+)$', 'twingle.search.views.index'),
凡匹配\w
(您应该更改此套件以满足您的需求)的所有内容都将与请求索引视图函数一起传递,作为名为query
的参数。
两个
:您可以使用URL模式,像这样:
urlpatterns = patterns('twingle.search.views',
url(r'^$', 'index'),
url(r'^search/(?P<query>\w+)$', 'index'),
)
在这个例子中的观点会是这个样子:
def index(request, query=None)
if not query:
query = request.GET.get('query', '')
# do stuff with `query` string
我正在使用错误'url(r'^ search /(?P \ w +)$','index')',语法无效(urls.py,第9行) 有什么想法为什么? – tipu 2010-05-23 11:50:43
如果你复制/粘贴了两个模式的最后一个urlpatterns示例代码,似乎我在第一个url模式后忘记了一个逗号。我现在已经修好了。 – 2010-05-23 12:02:38
我还编辑了urlpatterns(更名为''到''),以便更容易在视图中使用并添加了一个视图示例。 –
2010-05-23 12:29:53