如何在使用Google App Engine时将表单数据编码为网址?
下面的代码会生成一个表单,您可以在其中输入一些文本。然后,该文本显示在另一页"/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)
答案 0 :(得分: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