我正在为Udacity课程编写ROT13 webapp。现在使用我的代码,我想要做的就是获取用户输入,在用户输入后,再次使用相同的输入打印出表单。所以它看起来没什么变化。
这是我的代码。它似乎不起作用。我想我应该更好地使用文本变量,但我无法弄清楚如何。
更具体地说,它接收文本,然后文本消失,我再次看到表单。
import webapp2
form="""<p style="font-size:40px"><b>Enter ROT13 text here: <br></b></p>
<form method="post">
<textarea rows="6" cols="60" type="text" name="text" value="%(text)s"></textarea><br>
<input type="submit"></input>
</form>"""
class MainPage(webapp2.RequestHandler):
def write_form(self, text=""):
self.response.out.write(form % {"text": text})
def get(self):
self.write_form()
def post(self):
user_words = self.request.get('text')
self.write_form(user_words)
application = webapp2.WSGIApplication([('/', MainPage)], debug = True)
PS:每当我粘贴代码时,只有四个空格之后的第一行进入代码块。之后我必须在每条线的前面手动输入四个空格。有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
Yusuf,HTML的textarea标签不支持&#39;值&#39;属性。如果您在标记之间进行文本替换,则代码应该有效:
... %(文本)类
我也有这个问题,但在Udacity论坛上找到答案: https://discussions.udacity.com/t/hw2-1-preserving-user-input-in-textarea/68268/3
希望这会有所帮助:)
答案 1 :(得分:0)
你在post函数中弄错了 使用
def post(self):
self.write_form()
答案 2 :(得分:0)
为了澄清user2585981的答案(我还没有足够的声誉来评论),这个问题可以通过在textarea的开始和结束标签之间添加任何字符串替换来解决,就像这样......
<textarea name = 'text'>%(text)s</textarea>
或者也喜欢......
<textarea rows="6" cols="60" type="text" name="text">%(text)s</textarea>