00:06
神経質やせ男です。今日もPythonとFlaskの話をやっていきます。 本当は昨日全部まとめようと思ったんですが、
文量がなかなかのボリュームになりまして、 そして毎日更新という自分ルールもあるので、あえてセーブしました。
ということで、今回はWTFormsシリーズ、ついに完結です。 最後に残ったのがUnderbar、FormHelpersHTMLの謎。
ここはエラーメッセージをまとめて処理する、いわば裏方の指令等です。 まず出てくるのがマクロ。
マクロとはHTMLの中で使える自作関数のようなものです。 IFやFORのような標準機能だけでなく、自分で部品を作りたい。
それを可能にしているのがマクロです。 今回のマクロはエラー表示専用の部品。
次に出てくるのが少し難関なもの。
フィールド括弧、アスタリスク、アスタリスク、KW、アーゴス、セーブ。
まず、アスタリスク、アスタリスク、KW、アーゴス、アスタリスクが2つ。 ここがポイントです。
HTMLタグにはクラスやブレースホルダーなど複数の属性があります。
その複数のパラメータをまとめて安全に渡すための仕組みがこのアスタリスク、アスタリスクです。
そしてセーブ。 これをつけないとHTMLタグがただの文字列として表示されてしまいます。
これは安全なHTMLですよと明示して、ちゃんとタグとして解釈させるための命令です。
最後にIFとFOR。 フィールドにエラーがあれば赤文字で表示。
しかもエラーは1つとは限らない。
例えばパスワードなら文字数エラーと文字種エラー。 両方出る可能性があります。
だからフォーデルさせて複数行に渡って表示させています。
そして最後にEnter to HTMLのform、method、="post".
NoValidateの意味。
NoValidateこれはブラウザー側の標準チェックを無効にする命令です。
チェックは全部Pythonに任せる。
ブラウザーは表示だけやってくれ。
こうやって役割を分けることでコードの管理が圧倒的に楽になります。
ということでWTFormsシリーズはここで一区切り。
次回は発展編。
フラスクWTFはなぜ優れているのか。
ここまで理解した今だからこそ違いが見えてきます。
ということで次回はフラスクWTF入門。
WTForms語彙の堅牢性についてお話しする予定です。
ご静聴ありがとうございました。