第12章 コメント(演習)
各投稿にコメントを付けられるようにします。
1 db_insta.py
db_insta.pyでクラスCommentを追加します。以下のようなフィールドを持ちます。
- cid Integer 主キー
- tid Integer 外部キー(toukou.tid)
- uid Integer 外部キー(user.uid)
- body String(255) コメント本文
- hi DateTime 投稿日時 初期値:現在日時
コンストラクタの引数は tid, uid, body とします。
リレーション設定
また、Userクラス、ToukouクラスにもCommentクラスとのリレーションを設定します。
初期データ
初期データとして以下を入れます。
Comment(1, 2, "いいですね"),
Comment(1, 1, "ありがとう")
2 コメントの表示
データベース
app.py にも、Commentクラスを追加します。また、Userクラス、Toukouクラスにもリレーションを追加します。
コメント表示
toukou.html の下部にコメントを表示します。コメントのリストは toukou.comment で取得出来ます。
投稿の一覧と同じく、各項目をdivタグで囲みclassを設定します。 なお、一件のコメント全体はdivタグでclass="comment"で囲みます。
3 コメントの投稿
toukou.html のコメント一覧の下にコメント投稿フォームを設置する。 /comment/投稿ID にpostで送信します。 入力内容はテキストボックスでコメント本文(name="body")を入力できるようにします。
app.py
これを受け取っるために、app.pyではcomment_post関数を作成します。 bodyを受け取って、Commentテーブルに追加を行います。なお、ユーザIDはセッションから取得します(session['uid'])。
4 style.css
.commentに以下のスタイルを設定します。
- 枠線は1px、実線、グレイ
- 角を丸くする(8px)
- 枠線の内側の余白を1文字分付ける。
- 枠線の外側下部に余白を1文字分付ける。
.bodyに以下のスタイルを設定します。
- 外側に余白を1文字分付ける。