Appengine GET参数

Kar*_*tik 5 python google-app-engine

我对Python并不熟悉,并试图将我的一个php webapps转换为python.目前我正在使用appengine启动器在localhost上运行应用程序,这正是我想要做的.

我正在尝试获取发布到网址的所有参数的列表,然后将它们提交到页面并获取其内容.

所以基本上:1:获取参数2:通过提交这些参数来获取网址的内容(PHP相当于file_get_contents的curl)

到目前为止这是我的代码

from google.appengine.ext import webapp

class MyHandler(webapp.RequestHandler):
    def get(self):
        name1 = self.request.get_all("q")
        name2 = self.request.get_all("input")
        return name1,name2

x = MyHandler()
print x.get() 
Run Code Online (Sandbox Code Playgroud)

和网址

http://localhost:8080/?q=test1&input=test2
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误

AttributeError: 'MyHandler' object has no attribute 'request'
Run Code Online (Sandbox Code Playgroud)

现在我不能打印任何东西,我不知道如何通过提交name1和name2来获取另一个url的内容

我已经尝试过查看文档,但我无法理解它,因为它们只有2行代码才能使用函数启动.

Cal*_*vin 6

x = MyHandler()
print x.get() 
Run Code Online (Sandbox Code Playgroud)

这不是AppEngine应用程序的典型部分.您不用于print将输出返回到浏览器.

在AppEngineLauncher中创建新应用程序时,它会为您提供一个如下所示的框架项目:

from google.appengine.ext import webapp
from google.appengine.ext.webapp import util


class MainHandler(webapp.RequestHandler):
    def get(self):
        self.response.out.write('Hello world!')


def main():
    application = webapp.WSGIApplication([('/', MainHandler)],
                                         debug=True)
    util.run_wsgi_app(application)


if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

您的应用必须以类似方式运行.你需要一个main()方法来创建一个负责调用你的处理程序的wsgi_app.假设你的app.yaml文件设置正确,那个main()函数由dev_appserver调用.

def get(self):
    name1 = self.request.get_all("q")
    name2 = self.request.get_all("input")
    self.response.out.write(name1 + ',' + name2)
Run Code Online (Sandbox Code Playgroud)

如果你正确设置你的应用程序应该工作.