コンテンツにスキップ

第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文字分付ける。