Django简单URL映射问题
有个小问题,想知道是否有人能帮我解决 我有一个这样的文本搜索框Django简单URL映射问题,django,django-urls,Django,Django Urls,有个小问题,想知道是否有人能帮我解决 我有一个这样的文本搜索框 <form class="navbar-form navbar-left" role="search" action="/library/search/"> <div class="form-group" style="display:inline;"> <div class="input-group"> &l
<form class="navbar-form navbar-left" role="search" action="/library/search/">
<div class="form-group" style="display:inline;">
<div class="input-group">
<input class="form-control" id="q" name="P" type="text" placeholder="Book Search"">
<span class="input-group-btn">
<button class="btn btn-primary" type="submit"><i class="glyphicon glyphicon-search"></i></button>
</span>
</div>
</div>
</form>
在url.py中,我有类似的内容
url(r'^search/(?P<search_result>[\w|\W.@+-]+)/$', views.search_view, name='search_view')
url(r'^search/(?P[\w|\w.@+-]+)/$,views.search\u视图,name='search\u视图〕)
但是,上面的url与regex语句不匹配。如果我手动从url中删除?P=,它可以正常工作
我试过以下几种组合,但也不起作用
url(r'^search/(?P(.*)<search_result>[\w|\W.@+-]+)/$', views.search_view, name='search_view')
url(r'^search/(?P(.*)[\w|\w.@+-]+])/$,views.search\u view,name='search\u view')
知道会是什么吗
谢谢你误解了正则表达式中的
?p
意思。它声明该组是一个命名组,通过关键字参数捕获并发送到视图。满足正则表达式的URL如下所示:
/library/search/harrypotter/
但这根本不是你想要的搜索结果;您想要的是与您创建的类似的东西,即library/search/?P=harry+potter
。为此,您只需要一个不带参数的URL:
r'^search/$'
并获取视图中的数据:
query = request.GET['p']
虽然您可能想使用
q
而不是p
,但您误解了?p
在正则表达式中的含义。它声明该组是一个命名组,通过关键字参数捕获并发送到视图。满足正则表达式的URL如下所示:
/library/search/harrypotter/
但这根本不是你想要的搜索结果;您想要的是与您创建的类似的东西,即library/search/?P=harry+potter
。为此,您只需要一个不带参数的URL:
r'^search/$'
并获取视图中的数据:
query = request.GET['p']
虽然您可能想使用
q
而不是p
非常感谢,特别是对它的详细解释。今天我确实学到了一些东西。谢谢你花时间帮忙。非常感谢,特别是你详细的解释。今天我确实学到了一些东西。谢谢你花时间帮忙。