©2009 Google -
Code 主页 -
站点服务条款 -
隐私政策 -
站点目录
Google Code 有以下版本:
English -
Español -
日本語 -
한국어 -
Português -
Pусский -
中文(简体) -
中文(繁體)
如果我们希望用户能够发布自己的问候,我们需要一种方法来处理用户使用网络表单提交的信息。使用 webapp 框架可以轻松地处理表单数据。
用以下内容替换 helloworld/helloworld.py 的内容:
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):
self.response.out.write("""
<html>
<body>
<form action="/sign" method="post">
<div><textarea name="content" rows="3" cols="60"></textarea></div>
<div><input type="submit" value="Sign Guestbook"></div>
</form>
</body>
</html>""")
class Guestbook(webapp.RequestHandler):
def post(self):
self.response.out.write('<html><body>You wrote:<pre>')
self.response.out.write(cgi.escape(self.request.get('content')))
self.response.out.write('</pre></body></html>')
application = webapp.WSGIApplication(
[('/', MainPage),
('/sign', Guestbook)],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
重新加载页面以查看表单,然后尝试提交邮件。
该版本有两个处理程序:映射到网址 / 的 MainPage,显示网络表单。映射到网址 /sign 的 Guestbook,显示网络表单提交的数据。
Guestbook 处理程序使用 post() 方法而不是 get() 方法。这是因为 MainPage 显示的表单使用 HTTP POST 方法 (method="post") 来提交表单数据。如果由于一些原因您需要一个处理程序来处理对同一网址的 GET 和 POST 操作,您可以为相同类中的每个操作定义一种方法。
post() 方法的代码从 self.request 获取表单数据。在把它重新显示给用户之前,它会使用 cgi.escape() 来将 HTML 特殊字符转义为相应的对等字符实体。cgi 是标准 Python 库中的模块;有关详细信息,请参阅 cgi 文档。
注意:App Engine 环境包括整个 Python 2.5 标准库。但是,不是所有操作都允许执行。App Engine 应用程序在受限的环境中运行,使 App Engine 可以安全地自行扩展。例如,不允许对操作系统的低级调用、联网操作,以及一些文件系统操作,并且会在尝试时引发错误。有关详细信息,请参阅 Python 运行时环境。
既然我们可以从用户收集信息,那么我们还需要放置信息的位置和取回信息的方法。
继续转至使用数据存储区。