• 完成评论功能


      1. 定义评论的视图函数
        @app.route('/comment/',methods=['POST'])
        def comment():
        读取前端页面数据,保存到数据库中
      2. 用<input type="hidden" 方法获取前端的"question_id" 
      3. 显示评论次数
      4. 要求评论前登录
      5. 尝试实现详情页面下的评论列表显示

    1.定义评论的视图函数

     1 # 发布评论
     2 @app.route('/answer/', methods=['GET', 'POST'])
     3 def answer():
     4     if request.method == 'POST':
     5         book_id = request.form.get('book_id')
     6         question_id = request.form.get('question_id')
     7         answer_id = request.form.get('answer_id')
     8         content = request.form.get('content')
     9         commentaries = Commentaries(id='1', book_id=book_id, question_id=question_id, answer_id=answer_id,
    10                                     content=content)
    11         db.session.add(commentaries)
    12         db.session.commit()
    13         commentaries = Commentaries.query.filter(Commentaries.book_id == book_id).order_by('-date').all()
    14         context = {
    15             'commentaries': commentaries,
    16         }
    17         return render_template('answer.html', **context)
    18     else:
    19         book_id = request.args.get('book_id')
    20         commentaries = Commentaries.query.filter(Commentaries.book_id == book_id).order_by('-date').all()
    21         context = {
    22             'commentaries': commentaries,
    23         }
    24         return render_template('answer.html', **context)

    2.用<input type="hidden" 方法获取前端的"question_id" 

     1     $('#btn_submit_regis').click(function () {
     2             $.post(
     3                 '{{  url_for('answer')  }}',
     4                 {
     5                     content: $('#content').val(),
     6                     book_id: '{{ book.id }}',
     7                     question_id: '{{ book.authorClass.id }}',
     8                     answer_id: '{{ user.id }}'
     9                 },
    10                 function (data) {
    11                     $('#content').val('')
    12                     $('#answer').html(data)
    13                 }
    14             )
    15         })
     1           <div style="margin-left: 20px;margin-bottom: 50px;">
     2                         <form class="new-comment" style="padding-bottom: 30px;">
     3                             <a class="avatar" style="position: absolute;left: -48px;"><img
     4                                     src="http://www.bookmarkye.com/5.jpg" width="64px"></a>
     5                             <div class="sign-container">
     6                                 <div class="layui-form-item layui-form-text">
     7                                     <label class="layui-form-label" for="content">评论内容</label>
     8                                     <div class="layui-input-block">
     9                                         <textarea name="content" id="content" rows="5" placeholder="请输入评论内容"
    10                                                   class="layui-textarea"></textarea>
    11                                     </div>
    12                                 </div>
    13                                 <!--注册按钮-->
    14                                 <div class="btn_submit_regis">
    15                                     <button type="button" id="btn_submit_regis" class="layui-btn layui-btn-normal">发布
    16                                     </button>
    17                                 </div>
    18                             </div>
    19                         </form>
    20                     </div>

    3.显示评论次数

    4.要求评论前登录

     1           <!-- 评论区或登录区 -->
     2                 {% if not title %}
     3                     <div style="margin-left: 20px;margin-bottom: 50px;">
     4                         <form class="new-comment"><a class="avatar" style="position: absolute;left: -48px;">
     5                             <img src="{{ url_for('static',filename='img/default_logo.jpg') }}" width="64px"></a>
     6                             <div class="poi_sign-container">
     7                                 <a href="{{ url_for('login',poi=book.id) }}" class="layui-btn">登录</a>
     8                                 <span>后发表评论</span>
     9                             </div>
    10                         </form>
    11                     </div>
    12                 {% else %}
    13                     <div style="margin-left: 20px;margin-bottom: 50px;">
    14                         <form class="new-comment" style="padding-bottom: 30px;">
    15                             <a class="avatar" style="position: absolute;left: -48px;"><img
    16                                     src="http://www.bookmarkye.com/5.jpg" width="64px"></a>
    17                             <div class="sign-container">
    18                                 <div class="layui-form-item layui-form-text">
    19                                     <label class="layui-form-label" for="content">评论内容</label>
    20                                     <div class="layui-input-block">
    21                                         <textarea name="content" id="content" rows="5" placeholder="请输入评论内容"
    22                                                   class="layui-textarea"></textarea>
    23                                     </div>
    24                                 </div>
    25                                 <!--注册按钮-->
    26                                 <div class="btn_submit_regis">
    27                                     <button type="button" id="btn_submit_regis" class="layui-btn layui-btn-normal">发布
    28                                     </button>
    29                                 </div>
    30                             </div>
    31                         </form>
    32                     </div>
    33                 {% endif %}

    5.尝试实现详情页面下的评论列表显示

  • 相关阅读:
    如何卸载VS 2017之前版本比如VS 2013、VS2015、 VS vNext?
    在SQL Server中如何进行UPDATE TOP .....ORDER BY?
    EntityFramework 6.x和EntityFramework Core插入数据探讨
    2017-2018:时间戳
    http协议进阶(六)代理
    认清性能问题
    <转>安全测试思维导图
    RESTful API浅谈
    http协议进阶(五)连接管理
    聊聊软件测试的职业规划
  • 原文地址:https://www.cnblogs.com/alliancehacker/p/8004284.html
Copyright © 2020-2023  润新知