コンテンツにスキップ

第5章 投稿個別ページ

1 index.html

次に投稿の個別ページを作成します。まず、投稿一覧(index.html)で画像をクリックすると、/toukou/投稿ID に遷移するようにリンクを付け加えます。

<div class="image">
  <a href="/toukou/{{r.tid}}">
    <img src="/static/{{r.image}}">
  </a>
</div>

2 app.py

以下のtoukou関数を作成し、tidを受け取って検索した結果をtoukou.htmlに渡します。

@app.get('/toukou/<tid>')
def toukou(tid):
    row = Toukou.query.get_or_404(tid)
    return render_template("toukou.html", toukou=row)

3 toukou.html

toukou.htmlでは投稿を一件のみ表示します。これは投稿一覧の画像一件と同じですが、画像にリンクが無い点と、最後にtoukou.mesを表示する点のみが異なります。。

<div class="toukou">
    <div class="uname">{{toukou.user.uname}}</div>
    <div class="hi">{{toukou.hi}}</div>
    <div class="image">
    <img src="/static/{{toukou.image}}">
    </div>

    <div class="mes">{{toukou.mes}}</div>
</div>

4 style.css

staticフォルダにあるstyle.cssにスタイルを設定します。投稿の本文部分でマージンを付けて画像を少し離します。また、white-spaceで、改行を反映するようにします。

.mes {
    margin-top:1em;
    white-space: pre-wrap;
}