三12、完成評論功能

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>
相關文章
相關標籤/搜索