Python - 获取发布数据

时间:2011-07-17 12:19:59

标签: python google-app-engine

我正在尝试在google appspot上制作一些python脚本。我刚刚开始使用python,所以我现在不太了解它。

我正在使用您可以在google appspot文档中找到的示例代码。但每当我在此代码中提交表单时,我只会得到一个空白页面而没有错误。谁知道为什么?

import cgi

from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class MainPage(webapp.RequestHandler):  

    def get(self):
      p = self.request.get("p", default_value="25")

      self.response.out.write("""
          <html>
            <body>
              <form action="/" method="post">
        The first <input type="text" name="p" value=""" + p + """ style="width: 35px;text-align:center;"> fibionacci numbers:<br />""")

      p = int(p)
      a, b = 0, 1
      while p > 0:
    self.response.out.write(str(b) + " ")
    a, b = b, a+b
    p = p - 1

      self.response.out.write("""
              </form>
            </body>
          </html>""")


application = webapp.WSGIApplication([('/', MainPage)],
                                     debug=True)

def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()

提前谢谢。

3 个答案:

答案 0 :(得分:1)

如果你正在使用谷歌应用引擎(托管在appspot上,所以我确定你正在使用它),那么你使用这个:

tPostVariable = self.request.get('PostVariableName')

如果您已经设置了这样的处理程序,那么它将自动运行:

class ClassName(webapp.RequestHandler):
    #For Get Pages
    def get(self):
        tPostVariable = self.request.get('PostVariableName')

    #For Post Pages
    def post(self):
        tPostVariable = self.request.get('PostVariableName')

这适用于GET和POST变量。

答案 1 :(得分:0)

你抓住了NameError。它抛出KeyError

答案 2 :(得分:0)

读取存在或不存在的密钥的建议方法是:

p = form.get('p', '0') # 0 = default value
try:
    p = int(p)
except ValueError, e:
    pass # What do do when p is not an integer?