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" 

@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.显示评论次数

<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.尝试实现详情页面下的评论列表显示

<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>

 

posted on 2017-12-08 11:32  094吴嘉绿  阅读(69)  评论(0编辑  收藏  举报