完成评论功能
定义评论的视图函数
@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> 评论时间:{{ foo.creat_time }} <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)