我想将搜索结果网址从/searchhandler
更改为/searchhandler?search_string=[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>""")
这是SearchHandler:
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。以下是根据his answer我的解决方案:
我改变了这样的形式:
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)
答案 0 :(得分: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