如何使用textarea保留用户输入

时间:2014-12-16 15:45:37

标签: python html python-2.7

我正在为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:每当我粘贴代码时,只有四个空格之后的第一行进入代码块。之后我必须在每条线的前面手动输入四个空格。有什么方法可以解决这个问题吗?

3 个答案:

答案 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>