1. 程式人生 > >Flask實戰第62天:帖子詳情頁布局

Flask實戰第62天:帖子詳情頁布局

add article ron boa 首頁 視圖 ref head ()

在templates/front/下創建詳情頁面front_pdetail.html

編輯front.views.py創建詳情頁的視圖函數

from flask import abort
...

@bp.route(/p/<post_id>/)
def post_detail(post_id):
    post = PostModel.query.get(post_id)
    if not post:
        abort(404)
    return render_template(front/front_pdetail.html, post=post)

上面寫了,如果帖子不存在,則返回404,我們先創建個404頁面

技術分享圖片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>BBS論壇404頁面</title>
</head>
<body>
    您要找的頁面已經到火星去了~~
    <div>
        <a href="/">回到首頁</a>
    </div>
</
body> </html>
front_404.html

然後我們寫個鉤子函數,返回404的頁面, 編輯front.hooks.py

@bp.errorhandler
def page_not_found():
    return render_template(front/front_404.html),404

帖子詳情頁面布局

編輯front_pdetail.html

技術分享圖片
{% extends front/front_base.html %}

{% block title %}
    {{ post.title }}
{% endblock %}


{
% block head %} <link rel="stylesheet" href="{{ url_for(‘static‘, filename=‘front/css/front_pdetail.css‘) }}"> {% endblock %} {% block body %} <div class="lg-container"> <div class="post-container"> <h2>{{ post.title }}</h2> <p class="post-info-group"> <span>發表時間:{{ post.create_time }}</span> <span>作者:{{ post.author.username }}</span> <span>所屬板塊:{{ post.board.name }}</span> <span>閱讀數:{{ post.read_count }}</span> <span>評論數:0</span> </p> <article class="post-content" id="post-content" data-id="{{ post.id }}"> {{ post.content|safe }} </article> </div> </div> <div class="sm-container"></div> {% endblock %}
front_pdetail.html 技術分享圖片
.post-container{
    border: 1px solid #e6e6e6;
    padding: 10px;
}

.post-info-group{
    font-size: 12px;
    color: #8c8c8c;
    border-bottom: 1px solid #e6e6e6;
    margin-top: 20px;
    padding-bottom: 10px;
}

.post-info-group span{
    margin-right: 20px;
}

.post-content{
    margin-top: 20px;
}

.post-content img{
    max-width: 100%;
}
front_pdetail.css

在首頁配置帖子的鏈接

技術分享圖片

技術分享圖片

Flask實戰第62天:帖子詳情頁布局