Japanese subtitles

← PS 06-02 Rot13 Solution

Get Embed Code
4 Languages

Showing Revision 2 created 03/12/2014 by Fran Ontanaya.

  1. レッスン2の宿題の解説をします
  2. ポイントは2点あります
  3. ROT13とサインアップページの作成です
  4. ここでエラーなどをチェックします
  5. 私の作ったものをお見せします
  6. まずROT13のコードから始めましょう
  7. これは私のローカルマシンで走っているROT13です
  8. テキストを入力して送信すると
  9. ROT13で変換されたものが表示されます
  10. 再度送信すると元のテキストに戻ります
  11. こうなることは知っていますね
  12. ecscapes properlyと入力します
  13. テキストエリアに入力されました
  14. そしてこれを保存します
  15. ここでコードを確認してみましょう
  16. これはappengine.pyファイルです
  17. これが私の書いたROT13ハンドラです
  18. BaseHandlerクラスを継承しています
  19. 便利な関数が含まれています
  20. まず省略表現であるwrite関数を使います
  21. self.response.out.writeの代わりに
    self.writeが使えます
  22. 書かれたものをセーブするだけです
  23. 次にテンプレートを使います
  24. これについてはレッスン3で説明します
  25. 文字列を作る時にすべてをタイプする手間が省けます
  26. 宿題で使った人もいるかもしれませんね
  27. すべてタイプした人もいるでしょう
  28. まず最初に私のページのハンドラを見てみましょう
  29. ROT13クラスに位置する/unit2/rot13とあります
  30. 上のROT13を見ると関数が2つあります
  31. GET関数は表示の働きをします
  32. このファイルはrot13-form.htmlです
  33. この文字列をすべてコピーした人もいるかもしれません
  34. これでも同じことができます
    ファイルを見てみましょう
  35. これがそのファイルです
  36. ファイルは分けておきましょう
  37. 長い文字列を書かせてしまいすみません
  38. 頭が痛くなってしまったかもしれませんね
  39. これでずっと楽になります
  40. これはHTMLを返すだけです
  41. これはタイトルの部分です
  42. h2はページのトップの大きい文字です
  43. ここがフォームでメソッドはPOSTです
  44. それからtextareaがあります
  45. textareaにはテキストの名前と
  46. エリアを少し大きくするスタイルを加えました
  47. これは基本的なCSSです
  48. このフォームをコピーしてもいいです
  49. これは次のレッスンでやりますが
  50. 文字列を入れ替える代わりに
  51. 様々なテキストをテンプレートに当てはめてくれます
  52. 何もしなくても自動的にエスケープします
  53. そして送信ボタンでtextareaを閉じます
  54. 非常に簡単です
  55. もしも自動エスケープを削除したら
  56. このパラメータで設定されていますが
  57. どうなるか見てみましょう
  58. ここにテキストが入っています
  59. 今入力はできませんがやってみましょう
  60. エスケープを削除した場合
    送信後どうなるのか見てみましょう
  61. 1度目は普通に動きますが
    2度目はボックスから出てしまいます
  62. なぜでしょう?
  63. ROT13のtextareaをクローズにすると
  64. HTMLでのtextareaもクローズになり
  65. テキストが外に出てしまいます
  66. Chromeでこのファイルのソースを見てみると
  67. 原因が分かります
  68. テンプレートでtextareaが非エスケープになり
  69. クローズされているためエスケープされず
  70. textareaからはみ出てしまうのです
  71. ここでクローズになっています
  72. エディタをさかのぼって
  73. 再度エスケープを設定します ここは手入力ですね
  74. 初めに習ったやり方です
  75. そしてChromeに戻りこのページをリロードします
  76. フォームの送信を確認すると
  77. textareaがエスケープされているのが分かります
  78. テンプレートを変えると
    このように正しく表示されます
  79. 気をつけてほしいのは
  80. HTMLには<>の記号があり
  81. <>が表示されると送信した場合
  82. <>のまま表示されます
  83. これはエスケープバージョンではありません
  84. 時間があれば試してみてください
  85. このように動くはずです