如何在搜索页面URL中添加搜索参数?
我想把搜索结果的链接从 /searchhandler
改成 /searchhandler?search_string=[搜索内容]
,这样我就可以跳转到那个搜索结果页面。请问我该怎么做?
这是搜索的表单:
self.response.out.write("""
<form name="search_form" action="/searchhandler" method="post"><br />
<input type="text" name="search_string" size=40>
<input type="submit" value="search tags">
</form>""")
这是搜索处理程序:
class SearchHandler(webapp.RequestHandler):
def post(self):
...
s = filter(None, f1.striplist(self.request.get("search_string").split(" ")))
n = len(s)
if n==1:
query = Main.all()
query.filter("tag_list", s[0])
query.order("-total_value")
f1.display(query, self)
...
更新
感谢 MattoTodd。下面是我根据 他的回答找到的解决方案:
我把表单改成了这样:
search_string = ""
self.response.out.write("""
<form name="search_form"
action="/searchhandler?search_string=%s"
method="get">
<br />
<input type="text"
name="search_string"
size=40>
<input type="submit"
value="search tags">
</form>
""" % search_string)
1 个回答
2
“tag_list”这个属性是一个字符串列表吗?我猜你是想搜索标签吧?我建议你用逗号分隔的列表来输入,而不是用空格分隔。
另外,我不太明白f1是什么。
试试这个:
self.response.out.write("""
<form name="search_form" action="/searchhandler" method="GET"><br />
<input type="text" name="search_string" size=40>
<input type="submit" value="search tags">
</form>""")
还有处理程序:
class SearchHandler(webapp.RequestHandler):
def get(self):
search_string = self.request.get("search_string", None)
if not search_string:
raise Exception("Missing Param")
tags = [t.strip() for t in search_string.split(",")]
if tags:
query = Main.all()
query.filter("tag_list IN", tags)
query.order("-total_value")
# Handle your results
补充说明:在这种情况下,把请求方法改成GET,而不是POST。