zoukankan      html  css  js  c++  java
  • 1.6新闻分类编辑

    效果如下

    实现效果:

      (1、能够显示分类信息

      (2、能够编辑新闻名称同时完成修改

      (3、能够添加分类并且上传数据库

    1、后台代码

     1 @admin_blue.route('/news_type',methods=['GET','POST'])
     2 def news_type_dis():
     3     categories = None
     4     try:
     5         #查询所有得分类
     6         categories = Category.query.all()
     7     except Exception as e:
     8         current_app.logger.error(e)
     9 
    10     #处理post请求
    11     if request.method == "POST":
    12         #接收参数
    13         name = request.json.get("name")
    14         ca_id = request.json.get("id")
    15         #判断是否接收到name值
    16         if not name:
    17             return jsonify(errno=RET.DBERR, errmsg="参数不全")
    18 
    19         #判断是否有id值,做双分支
    20         if  ca_id:
    21             #有id值时
    22             try:
    23                 #查询分类id和接收到得分类id一样得分类
    24                 ca_name = Category.query.filter(Category.id == ca_id).first()
    25             except Exception as e:
    26                 current_app.logger.error(e)
    27                 return jsonify(errno=RET.DBERR, errmsg="数据库查询失败")
    28             #赋值
    29             ca_name.name = name
    30         #当id没有值时
    31         else:
    32             try:
    33                 #实例化分类模型类
    34                 name_add = Category()
    35                 #赋值
    36                 name_add.name = name
    37             except Exception as e:
    38                 current_app.logger.error(e)
    39                 return jsonify(errno=RET.DBERR, errmsg="数据库查询失败")
    40         try:
    41             #逻辑添加,数据上传
    42             db.session.add(name_add)
    43             db.session.commit()
    44         except Exception as e:
    45             current_app.logger.error()
    46             db.session.rollback()
    47             return jsonify(errno=RET.DATAERR, errmsg="数据库上传失败")
    48         #返回结果
    49         return jsonify(errno=RET.OK, errmsg="修改完成")
    50     #传递上下文
    51     context = {
    52         "categories": categories,
    53     }
    54     return render_template("admin/news_type.html",context = context)

    2、前端代码

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>新经资讯后台管理</title>
     6     <link rel="stylesheet" type="text/css" href="../../static/admin/css/reset.css">
     7     <link rel="stylesheet" type="text/css" href="../../static/admin/css/main.css">
     8     <script type="text/javascript" src="../../static/admin/js/jquery-1.12.4.min.js"></script>
     9     <script type="text/javascript" src="../../static/admin/js/news_type.js"></script>
    10 </head>
    11 <body>
    12     <div class="breadcrub">
    13             当前位置:新闻管理>新闻分类管理
    14         </div>
    15         <div class="pannel">
    16             <table class="common_table">
    17                 <tr>
    18                     <th width="10%">id</th>
    19                     <th width="80%">类别名称</th>
    20                     <th width="10%">管理操作</th>
    21                 </tr>
    22 
    23                 {% for category in context.categories %}
    24                     <tr>
    25                         <td>{{ category.id }}</td>
    26                         <td>{{ category.name }}</td>
    27                         <td><a href="javascript:;" class="edit">编辑</a></td>
    28                     </tr>
    29                 {% endfor %}
    30 
    31                 <tr>
    32                     <td colspan="3"><a href="javascript:;" class="addtype">增加分类</a></td>
    33                 </tr>
    34             </table>
    35         </div>
    36 
    37         <div class="pop_con">
    38             <div class="pop">
    39                 <form>
    40                     <h3>修改分类</h3>
    41                     <div class="form_group mt50">
    42                         <label class="input_label">分类名称:</label><input type="text" class="input_txt3">
    43                         <span class="error_tip">提示文字</span>
    44                     </div>
    45                     <div class="form_group line_top">
    46                         <input type="button" value="确定" class="confirm">&nbsp;&nbsp;&nbsp;&nbsp;
    47                         <input type="button" value="取消" class="cancel">
    48                     </div>
    49                 </form>
    50             </div>
    51             <div class="mask"></div>
    52         </div>
    53 </body>
    54 </html>

    3、js代码

     1 function getCookie(name) {
     2     var r = document.cookie.match("\b" + name + "=([^;]*)\b");
     3     return r ? r[1] : undefined;
     4 }
     5 
     6 $(function(){
     7     var $a = $('.edit');
     8     var $add = $('.addtype');
     9     var $pop = $('.pop_con');
    10     var $cancel = $('.cancel');
    11     var $confirm = $('.confirm');
    12     var $error = $('.error_tip');
    13     var $input = $('.input_txt3');
    14     var sHandler = 'edit';
    15     var sId = 0;
    16 
    17     $a.click(function(){
    18         sHandler = 'edit';
    19         sId = $(this).parent().siblings().eq(0).html();
    20         $pop.find('h3').html('修改分类');
    21         $pop.find('.input_txt3').val($(this).parent().prev().html());
    22         $pop.show();
    23     });
    24 
    25     $add.click(function(){
    26         sHandler = 'add';
    27         $pop.find('h3').html('新增分类');
    28         $input.val('');
    29         $pop.show();
    30     });
    31 
    32     $cancel.click(function(){
    33         $pop.hide();
    34         $error.hide();
    35     });
    36 
    37     $input.click(function(){
    38         $error.hide();
    39     });
    40 
    41     $confirm.click(function(){
    42 
    43         var params = {}
    44         if(sHandler=='edit')
    45         {
    46             var sVal = $input.val();
    47             if(sVal=='')
    48             {
    49                 $error.html('输入框不能为空').show();
    50                 return;
    51             }
    52             params = {
    53                 "id": sId,
    54                 "name": sVal,
    55             };
    56         }
    57         else
    58         {
    59             var sVal = $input.val();
    60             if(sVal=='')
    61             {
    62                 $error.html('输入框不能为空').show();
    63                 return;
    64             }
    65             params = {
    66                 "name": sVal,
    67             }
    68         }
    69 
    70         // TODO 发起修改分类请求
    71         $.ajax({
    72             url:"/admin/news_type",
    73             method: "post",
    74             headers: {
    75                 "X-CSRFToken": getCookie("csrf_token")
    76             },
    77             data: JSON.stringify(params),
    78             contentType: "application/json",
    79             success: function (resp) {
    80                 if (resp.errno == "0") {
    81                     // 刷新当前界面
    82                     location.reload();
    83                 }else {
    84                     $error.html(resp.errmsg).show();
    85                 }
    86             }
    87         })
    88     })
    89 })
  • 相关阅读:
    权限、角色及架构 【转载】
    C#和SQL SERVER 实用工具推荐 『转载』
    创建自定义配置节点(web.config和app.config都适用)【转载】
    asp.net代码中尖括号和百分号的含义 <转载>
    为JavaScript程序添加客户端不可见的注释 【转载】
    C#中string[]数组和list<string>泛型的相互转换 【转】
    程序员从初级到中级10个秘诀 【转载】
    PowerDesigner 使用教程 【转载】
    【openstack N版】——网络服务neutron(flat扁平网络)
    【openstack N版】——镜像服务glance
  • 原文地址:https://www.cnblogs.com/Hdwmsyqdm/p/13999386.html
Copyright © 2011-2022 走看看