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 })
原文地址:https://www.cnblogs.com/Hdwmsyqdm/p/13999386.html