我对Python并不熟悉,并试图将我的一个php webapps转换为python。目前我正在使用appengine启动器在localhost上运行应用程序,这正是我想要做的。
我正在尝试获取发布到网址的所有参数列表,然后将其提交到网页并获取其内容。
所以基本上: 1:得到参数 2:通过提交这些参数来获取网址的内容(PHP等价于cur_of file_get_contents)
这是我目前的代码
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()
和网址
http://localhost:8080/?q=test1&input=test2
这是我得到的错误
AttributeError: 'MyHandler' object has no attribute 'request'
现在我无法打印任何内容,我不知道如何通过提交name1和name2来获取其他网址的内容
我已经尝试过查看文档,但我无法理解它,因为它们只有2行代码才能开始使用函数。
答案 0 :(得分:6)
x = MyHandler()
print x.get()
这不是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()
您的应用必须以类似方式运行。你需要一个main()方法来创建一个负责调用你的处理程序的wsgi_app。 dev_appserver调用main()函数,假设你的app.yaml文件设置正确。
def get(self):
name1 = self.request.get_all("q")
name2 = self.request.get_all("input")
self.response.out.write(name1 + ',' + name2)
如果您正确设置了应用,则应该可以正常工作。
答案 1 :(得分:0)
如果要使用WebApp框架,则需要更多行代码才能使其工作。在代码的末尾添加以下行(并删除实例化类的最后两行并调用get方法)
application = webapp.WSGIApplication([('/', MyHandler)])
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()