我不是很熟悉 Python,正在尝试将我的一个 php webapps 转换为 python。目前,我正在使用应用引擎启动器在本地主机上运行应用程序,这就是我想要做的。
我正在尝试获取发布到 url 的所有参数的列表,然后将它们提交到页面并获取其内容。
所以基本上: 1:获取参数 2:通过提交这些参数获取 url 的内容(相当于 file_get_contents 的 curl 的 PHP)
到目前为止,这是我的代码
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 来获取另一个 url 的内容
我已经尝试查看文档,但我无法理解它,因为它们只有 2 行代码来开始使用函数。
最佳答案
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 ,它负责调用您的处理程序。 main() 函数由 dev_appserver 调用,假设您的 app.yaml 文件设置正确。
def get(self):
name1 = self.request.get_all("q")
name2 = self.request.get_all("input")
self.response.out.write(name1 + ',' + name2)
如果您已正确设置您的应用,应该可以正常工作。
关于python - Appengine GET 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5767678/