Djangoでアプリ作成〜体重管理アプリ編6〜
こんにちは、こちょすです。
最近は外出自粛するため、自炊をするようになりましたが、一向に料理スキルがあがりません。😭
さあ、今回もDjangoアプリの作成頑張っていきましょーう🔥💪そろそろ疲れてきたなーという方もいるかもしれませんが、そういう時は無理せず自分のペースでやってくださいね❗️
前回の復習
前回は登録機能のためのformの自動生成機能を紹介して実装しました!今回はそのformをcontextとして受け取るテンプレート側の実装をしていきましょう💪
登録画面のテンプレートファイルの実装
前回修正したviews.pyのadd関数で、contextを含めて呼び出したのは、day_form.htmlとしていました。なので、このday_form.htmlを作成して、修正していきましょう。
このとき、最初の方にbase.htmlを作ったのを覚えていますか??これを今回も継承します!
文章で書くよりも、まずは修正内容を見た方が理解しやすいと思うので出します!
うっ、、、となってしまった方!心配しないでください!笑 1行ずつ何をしているか説明していきます💪
1行目:
ここはもう1回目から見ている方ならわかるかもしれませんね!全ページで共通となるコーディングをbase.htmlで定義しており、それを基礎としてこのページを書きますよーという宣言です。このbase.htmlの中には
{% block content %}
{% endblock %}
という記載があります。ここに相当する部分を、このday_form.htmlに書いているわけですね!🔥
2行目:
ここは1行目の解説のとおり、{% block content %}の始まりですよーという宣言です!
3行目:
3行目が、formタグですね!これは7行目まで囲われています。このformタグに囲われている部分が、submitボタンを押した時にサーバに送信されるわけです!
4行目:
この『{{form.as_p}}』が、このページのキモです🔥
formってなに??これがviews.pyでcontextとして指定され、このページに渡されたDayCreateForm()です!このオブジェクトで指定された項目をいい感じにhtmlとして表示するよ!という宣言です。
5行目:
これがsubmitボタンで、これを押すことでform内の情報がサーバに送られます。つまりユーザが入力した値がサーバに送られ、DB登録や、処理が行われるわけです。🔥
6行目:
csrf_token????ってなりますよね。これはセキュリティ対策のためのおまじないだと思ってください。csrfというのはクロスサイトリクエストフォージェリというサイバー攻撃手法ですが、これを書くだけで大変な時間がかかるので、ここではおまじないだと思っておいてください❗️
興味がある方はぜひGoogleで調べてみてくださいねー💪
7行目・8行目
ここは大丈夫ですよね!formタグとendblockの閉じタグです!
こうやってみてみると、「あれ、そんなに難しくないかも。。。」となってくれると嬉しいです。実は1行ずつ読み解いていけばそんなに難しいことはしていないんです💪🔥
最後に、ここまでかけたらサーバーを起動して表示を見てみましょう!
こんな感じで表示ができれば成功です🎉👏
htmlでは日付や体重、体脂肪率なんて定義していないのに、自動的に生成されてるわけです!これがDjangoのformライブラリの機能なんですね。便利ー!!🔥
では長くなりましたが、今回はここまで!次回以降ものんびり少しずつ進めていきましょうね!
ではでは!お疲れ様でした。見ていただきありがとうございました🙇
ツイッターもやっています!プログラミングや筋トレに関する情報を発信していくので、ぜひフォローお願いします!
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?