完成评论功能

定义评论的视图函数
@app.route('/comment/',methods=['POST'])
def comment():
读取前端页面数据,保存到数据库中

 

要求评论前登录

@app.route('/comment/', methods=['POST'])
@loginFirst
def comment():
    comment = request.form.get('comment')
    sent_id = request.form.get('sent_id')
    auth_id = User.query.filter(User.username == session.get("user")).first().id
    comm = Comment(author_id=auth_id, sent_id=sent_id, detail=comment)
    db.session.add(comm)
    db.session.commit()
    return redirect(url_for('detail', sent_id=sent_id))

用<input type="hidden" 方法获取前端的"question_id"

   <input type="hidden" name="sent_id" id="sent_id" value="{{ sen.id }}">

显示评论次数

           <h4>评论:({{ sen.comments|length }})</h4>

尝试实现详情页面下的评论列表显示

html

<div>

            <h4>评论:({{ sen.comments|length }})</h4>
            {% for foo in comment %}
                <ul style="padding-left: 0px;margin-bottom: 0px;">
                    <li class="list-group-item" style="width: 900px">
                        <a href="">{{ foo.author.username }}</a>
                        <span class="badge">评论时间:{{ foo.creat_time }}</span>
                        <p>{{ foo.detail }}</p>
                    </li>
                </ul>

            {% endfor %}

        </div>

py

@app.route('/detail/<sent_id>')
def detail(sent_id):
    sentt = Sent.query.filter(Sent.id == sent_id).first()
    context = {
        'comment': Comment.query.all(),
    }
    return render_template('detail.html', sen=sentt, **context)

 

posted @ 2017-12-08 19:54  044潘育珊  阅读(94)  评论(0编辑  收藏  举报