私は次のことをしようとしています:
HTML TextArea で、ASCII テーブルに入力されたテキストの各文字の位置を 13 桁ずつ変更します (私のコードでは rot13 関数です)。
Rot13 関数は次のとおりです。
def rot13(s):
for a in s:
print chr(ord(a)+13)
このように動作しますが、ヘッダー情報も出力し、最後の文字を省略します。ボックスに「Hello」という単語を入力すると、結果は次のようになります。
U r y y | Status: 200 Content-Type: text/html; charset=utf-8 Cache-Control: no-cache Content-Length: 4 None
では、これについてどうすればよいでしょうか?
また、私がこのようにしようとしたとき:
def rot13(s):
for a in s:
chr(ord(a)+13)
return s
私がテキストに入れたのと同じテキストを返しましたが、私が思っていた変更はありませんでした。私が理解しているように、「s」をそのように直接変更しませんか?では、これについてどうすればよいでしょうか?
コード全体は次のとおりです。
import webapp2
import cgi
def escape_html(s):
return cgi.escape(s, quote = True)
form = """<html>
<head><title>Rot13</title></head>
<body>
<form method="post">
Please enter your text here:<br>
<textarea name="text"></textarea>
<input type="submit">
</form>
</body>
</html>
"""
def rot13(s):
for a in s:
print chr(ord(a)+13)
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.out.write(form)
def post(self):
entered_text = self.request.get('text')
self.response.out.write(rot13(entered_text))
app = webapp2.WSGIApplication([
('/', MainHandler)
], debug=True)