我想通过查询进行搜索,如下所示。
http://localhost:8080/search?query=a
HTML
...
<form class="navbar-form navbar-right" name="searchform" action="/search" method="post">
<div class="form-group">
<input class="form-control" placeholder="Any keyword" type="text" name="query" />
</div>
<button class="btn btn-success" type="submit">Search</button>
</form>
...
routes.py
...
import handlers
_routes = [
RedirectRoute('/search?query=<.*>', handlers.SearchHandler, name='search', handler_method='post')
]
...
handlers.py
...
class SearchHandler(BaseHandler):
def get(self):
params = {
'query': '',
'offset': '0'
}
self.doSearch(params)
def doSearch(self, params):
docs = search.Index(name='indexed_doc')
query = params.get('query', '')
try:
offset_value = int(params.get('offset' or 0))
except ValueError:
offset_value = 0
try:
search_query = search.Query(...
结果反对:'/ search?query=<.*>'在routes.py
error_handler.py:71]错误403:此资源拒绝访问
module.py:593]默认:“POST / search HTTP / 1.1”403 2555
结果反对:routes.py的'/ search(.*)' error_handler.py:71]错误404:无法找到资源 module.py:593]默认:“POST / search HTTP / 1.1”404 2543
我如何为它编码正则表达式?或者出了什么问题? 提前谢谢。
答案 0 :(得分:3)
我相信有几个问题:
RedirectRoute
吗?是否有必要重新定位帖子请求?query
)应存储在请求正文中,而不是存储在网址中,例如/search?query=a+query
您可以更改以获取请求:
<form class="navbar-form navbar-right" name="searchform" action="/search" method="get">
<div class="form-group">
<input class="form-control" placeholder="Any keyword" type="text" name="query" />
</div>
<button class="btn btn-success" type="submit">Search</button>
</form>
import handlers
_routes = [
('/search', handlers.SearchHandler, name='search')
]