多个get方法Python google app引擎

时间:2012-07-13 16:58:18

标签: django google-app-engine rest get

在python的类中是否可以有多个GET?

我试过这个:

import webapp2

class MainPage(webapp2.RequestHandler ):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write("test")

    def get(self, name, surname):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('N: %s S: %s' % (name , surname))   

app = webapp2.WSGIApplication([('/.*', MainPage)],
                              debug=True)

但不起作用。

我该怎么做?处理两条不同路径的两个不同文件?

1 个答案:

答案 0 :(得分:7)

任何 Python类中,你不能有两个同名的方法。

相反,您应该做的是定义两个不同的类,然后使用不同的URL模式匹配来选择使用哪个,而不是将所有内容(/.*)发送到单个类。

这是一个(非常)基本的例子:

class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write("test")

class NamePage(webapp2.RequestHandler):
    def get(self, name, surname):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('N: %s S: %s' % (name , surname))   

app = webapp2.WSGIApplication([
        ('/(.+)/(.+)', NamePage), # Matches /foo/bar
        ('/.*', MainPage), # Matches everything else
    ], debug=True)