zoukankan      html  css  js  c++  java
  • 三十二、完成评论功能

    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>
  • 相关阅读:
    【Python第九篇】异步IO数据库队列缓存
    【Python第八篇】线程、进程及协程
    【Python第七篇】Socket网络编程
    实验五全部代码,ajax请求
    添加员工
    联级选择
    查询,利用jquery选择器
    列表、表格单选框
    注册
    聊天框
  • 原文地址:https://www.cnblogs.com/Green-/p/8004589.html
Copyright © 2011-2022 走看看