三十二、完成评论功能

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>

 

转载于:https://www.cnblogs.com/Green-/p/8004589.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值