该项目是一个简单的网络爬虫和搜索引擎。 “索引”处理程序具有用于输入要搜索的域和要查找的术语的表单。我希望POST方法重定向到“LuckySearch”处理程序,该处理程序搜索正则表达式术语。
我尝试过使用web.redirect()和web.seeother(),但似乎这些函数不支持字符串替换。我怎么能解决这个问题?
class Index(object):
def GET(self):
form = searchform()
return render.formtest(form)
def POST(self):
form = searchform()
if not form.validates():
return render.formtest(form)
else:
word = form['word'].get_value()
print "You are searching %s for the word %s" % (form['site'].get_value(), word)
raise web.redirect('/%s') % word
class LuckySearch(object):
def GET(self, query):
query = str(query)
lucky = lucky_search(corpus, query)
ordered = str(pretty_ordered_search(corpus, query))
if not lucky:
return "I couldn't find that word anywhere! Try google.com instead."
else:
return "The best page is: " + lucky + "\n" + "but you might also try:" + "\n" + ordered
class About(object):
def GET(self):
return "This is my first search engine! It only runs on my local machine, though."
if __name__ == "__main__":
corpus = crawl_web('http://en.wikipedia.org/wiki/Trinity_Sunday', 'http://en.wikipedia.org/wiki/Trinity_Sunday')
app = web.application(('/', 'Index', '/about', 'About', '/(.*)', 'LuckySearch'), globals())
app.run()
答案 0 :(得分:1)
以下一行
raise web.redirect('/%s') % word
应改为
raise web.seeother('/%s' % word)
%
,而不是web.redirect
结果。web.seeother
而不是web.redirect
,因为后者返回301 Moved Permanently
重定向,我认为您不需要永久重定向。