完成评论功能
- 定义评论的视图函数
@app.route('/comment/',methods=['POST'])
def comment():
读取前端页面数据,保存到数据库中@app.route('/comment/',methods=['POST']) @loginFirst def comment(): comment=request.form.get('new_comment') ques_id=request.form.get('question_id') auth_id=User.query.filter(User.username==session.get('user')).first().id comm=Comment(auth_id=auth_id,qusetion_id=ques_id,detail=comment) db.session.add(comm) db.session.commit() return redirect(url_for("detail"))
- 用<input type="hidden" 方法获取前端的"question_id"
<form action="{{ url_for('comment') }}" method="post" style="margin: 30px"> <div class="form-group"> <textarea name="new_comment" class="form-control" rows="3" id="new-comment" placeholder="write your comment"></textarea> <input type="hidden" name="question_id" value="{{ ques.id }}"> </div> <button type="submit" class="btn btn-default">提交</button> </form>
- 显示评论次数
<h3>评论:({{ ques.comments|length }})</h3>
- 要求评论前登录
@app.route('/comment/',methods=['POST']) @loginFirst def comment(): comment=request.form.get('new_comment') ques_id=request.form.get('question_id') auth_id=User.query.filter(User.username==session.get('user')).first().id comm=Comment(auth_id=auth_id,qusetion_id=ques_id,detail=comment) db.session.add(comm) db.session.commit() return redirect(url_for("detail"))
- 尝试实现详情页面下的评论列表显示