如何重定向到中的另一个处理程序网页.py从POST方法

2024-10-01 15:32:29 发布

您现在位置:Python中文网/ 问答频道 /正文

该项目是一个简单的网络爬虫和搜索引擎。“Index”处理程序有一个表单,用于输入要搜索的域和要查找的术语。我希望POST方法重定向到“LuckySearch”处理程序,它搜索regex术语。在

我试过用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()

Tags: selfformwebsearchgetindexreturnif
1条回答
网友
1楼 · 发布于 2024-10-01 15:32:29

下一行

raise web.redirect('/%s') % word

应改为

^{pr2}$
  1. 必须对字符串使用%,而不是web.redirect结果。在
  2. 我认为应该使用web.seeother而不是{},因为后者返回301 Moved Permanently重定向,我认为您不需要在这里永久重定向。在

相关问题 更多 >

    热门问题