+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

在Google App Engine上使用python使用POST方法处理HTML表单数据

发布于2020-05-27 06:10     阅读(702)     评论(0)     点赞(8)     收藏(0)


尝试在Google App Engine上开发python网络服务,该服务将处理从HTML表单发布的数据。有人可以告诉我我在做什么错吗?所有文件都位于桌面\ helloworld上的同一目录中。

操作系统:Win 7 x64 Python 2.7 Google App Engine(本地)

helloworld.py

import webapp2
import logging
import cgi

class MainPage(webapp2.RequestHandler):

  def post(self):
    self.response.headers['Content-Type'] = 'text/plain'
    form = cgi.FieldStorage()
    if "name" not in form:
      self.response.write('Name not in form')
    else:
      self.response.write(form["name"].value)

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

page.html

<html>
<body>
  <form action="http://localhost:8080" method="post">
    Name: <input type="text" name="name"/>
    <input type="submit" value="Submit"/>
  </form>
</body>
</html>

使用浏览器(Chrome)查看page.html,我在该字段中输入文本,然后按Submit,我希望看到的文本显示在浏览器中,但显示“名称不在表单中”。如果我将HTML表单方法更改为get并将python函数更改为def get(self),则它可以工作,但是我想使用post方法。任何帮助的解释将不胜感激。


解决方案


您不应该使用cgi.FieldStorage与所有Web框架一样,Webapp2具有处理POST数据的内置方式:在这种情况下,它是通过request.POST因此,您的代码应该只是:

if "name" not in self.request.POST:
    self.response.write('Name not in form')
else:
    self.response.write(self.request.POST["name"]) 

请参阅webapp2文档



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/393976/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

8 0
收藏该文
已收藏

评论内容:(最多支持255个字符)