見出し画像

Djangoでアプリ作成〜体重管理アプリ編6〜

こんにちは、こちょすです。

最近は外出自粛するため、自炊をするようになりましたが、一向に料理スキルがあがりません。😭

さあ、今回もDjangoアプリの作成頑張っていきましょーう🔥💪そろそろ疲れてきたなーという方もいるかもしれませんが、そういう時は無理せず自分のペースでやってくださいね❗️

前回の復習

前回は登録機能のためのformの自動生成機能を紹介して実装しました!今回はそのformをcontextとして受け取るテンプレート側の実装をしていきましょう💪

スクリーンショット 2020-04-25 13.30.19

登録画面のテンプレートファイルの実装

前回修正したviews.pyのadd関数で、contextを含めて呼び出したのは、day_form.htmlとしていました。なので、このday_form.htmlを作成して、修正していきましょう。

このとき、最初の方にbase.htmlを作ったのを覚えていますか??これを今回も継承します!

文章で書くよりも、まずは修正内容を見た方が理解しやすいと思うので出します!

スクリーンショット 2020-04-25 13.58.28

うっ、、、となってしまった方!心配しないでください!笑 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行ずつ読み解いていけばそんなに難しいことはしていないんです💪🔥

最後に、ここまでかけたらサーバーを起動して表示を見てみましょう!

スクリーンショット 2020-04-25 14.03.40

こんな感じで表示ができれば成功です🎉👏

htmlでは日付や体重、体脂肪率なんて定義していないのに、自動的に生成されてるわけです!これがDjangoのformライブラリの機能なんですね。便利ー!!🔥

では長くなりましたが、今回はここまで!次回以降ものんびり少しずつ進めていきましょうね!

ではでは!お疲れ様でした。見ていただきありがとうございました🙇


ツイッターもやっています!プログラミングや筋トレに関する情報を発信していくので、ぜひフォローお願いします!


この記事が参加している募集

おうち時間を工夫で楽しく

この記事が気に入ったらサポートをしてみませんか?