Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Python google应用程序引擎的多种获取方法_Django_Google App Engine_Rest_Get - Fatal编程技术网

Django Python google应用程序引擎的多种获取方法

Django Python google应用程序引擎的多种获取方法,django,google-app-engine,rest,get,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):

在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)
但是不起作用


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

在任何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)

在任何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)

您试图尝试的是重载。 一种比创建类更微妙的方法可以如下所示:

import webapp2

class MainPage(webapp2.RequestHandler ):

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

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

在这里,name和姓氏是可选的关键字参数(它们在您的问题中是位置参数)。我希望它能有所帮助

您在这里尝试的是重载。 一种比创建类更微妙的方法可以如下所示:

import webapp2

class MainPage(webapp2.RequestHandler ):

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

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

在这里,name和姓氏是可选的关键字参数(它们在您的问题中是位置参数)。我希望它有帮助

所以这就像有两个不同的文件,对吗?我应该如何在yaml文件中映射它们?不,这可以全部放在一个文件中。好的,但是yaml中的映射呢?yaml中的任何内容都不需要更改。您现有的Python文件只需更新为如上所示。请参见此处的示例:或者,您可以有一个类和一个get方法,该方法具有可选参数。哪个更合理取决于请求的性质。所以这就像有两个不同的文件,对吗?我应该如何在yaml文件中映射它们?不,这可以全部放在一个文件中。好的,但是yaml中的映射呢?yaml中的任何内容都不需要更改。您现有的Python文件只需更新为如上所示。请参见此处的示例:或者,您可以有一个类和一个get方法,该方法具有可选参数。哪个更合理取决于请求的性质。