1.定義評論的視圖函數前端
@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"))
2.用<input type="hidden" 方法獲取前端的"question_id" session
@app.route('/answer/', methods=['GET', 'POST']) def answer(): if request.method == 'POST': question_id = request.form.get('question_id') author_id = request.form.get('author_id') detail = request.form.get('detail') comment = Comment(question_id=question_id, author_id=author_id, detail=detail) db.session.add(comment) db.session.commit() return redirect(url_for('detail',question_id=question_id))
3.顯示評論次數app
<h4>評論({{ questions.comments|length }})</h4>
4.要求評論前登陸函數
@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"))
5.嘗試實現詳情頁面下的評論列表顯示url
<ul class="list-group"> {% for each in comments %} <li class="list-group-item" > <a class="author" href="">{{ each.author.username }}</a> <br> <br> <span >{{ each.create_time }}</span> <p class="abstract">{{ each.detail }}</p> </li> {% endfor %} </ul>