【问题标题】:App Engine: map form data to urlApp Engine:将表单数据映射到 url
【发布时间】:2012-12-03 15:15:42
【问题描述】:

使用 Google App Engine 时如何将表单数据编码到 url?

下面的代码会生成一个表单,您可以在其中输入一些文本。然后文本显示在另一个页面上"/sign"

我不想直接转至/sign,而是转至/sign?message="hello"

这是我的代码,来自这里:https://developers.google.com/appengine/docs/python/gettingstartedpython27/handlingforms)

import cgi
import webapp2

from google.appengine.api import users

class MainPage(webapp2.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(webapp2.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>')

app = webapp2.WSGIApplication([('/', MainPage),
                              ('/sign', Guestbook)],
                              debug=True)

【问题讨论】:

    标签: python html google-app-engine python-2.7


    【解决方案1】:

    我不确定您要达到什么目的。如果你写下你的意图,你可能会得到更可靠的建议。

    为了获得结果,我认为您的描述需要使用 get 而不是 post。获取将更改网址。这是修改后的代码:

    import cgi
    import webapp2
    
    from google.appengine.api import users
    
    class MainPage(webapp2.RequestHandler):
        def get(self):
            self.response.out.write("""
              <html>
                <body>
                  <form action="/sign">
                    <div><textarea name="content" rows="3" cols="60"></textarea></div>
                    <div><input type="submit" value="Sign Guestbook"></div>
                  </form>
                </body>
              </html>""")
    
    
    class Guestbook(webapp2.RequestHandler):
        def get(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>')
    
    
    app = webapp2.WSGIApplication([('/', MainPage),
                                  ('/sign', Guestbook)],
                                  debug=True)
    

    如果您想了解有关 webapp2 以及 get 和 post 方法的更多信息,请查看udacity CS253

    【讨论】:

    • 谢谢!我到处搜索这个并找不到它,因为我是根据应用引擎搜索的。当我搜索与 HTML 相关的示例时,我找到了它。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-05-03
    • 2019-03-01
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多