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

非常感谢,特别是对它的详细解释。今天我确实学到了一些东西。谢谢你花时间帮忙。非常感谢,特别是你详细的解释。今天我确实学到了一些东西。谢谢你花时间帮忙。