• Python + Flask 项目开发实践系列《六》


    欢迎关注【无量测试之道】公众号,回复【领取资源】,
    Python编程学习资源干货、
    Python+Appium框架APP的UI自动化、
    Python+Selenium框架Web的UI自动化、
    Python+Unittest框架API自动化、

    资源和代码 免费送啦~
    文章下方有公众号二维码,可直接微信扫一扫关注即可。

    今天开始我们讲讲Flask Web实践项目开发中的查看详情功能是如何实现的。

    Step1:html 部分

     1  
     2 lists +="<tr>"+ //拼凑一段html片段
     3           "<td style='word-wrap:break-word;word-break:break-all; '><input type='checkbox' id='itemid' name='testid' value='"+item.id+"'>"+item.id+"</td>"+
     4           "<td style='word-wrap:break-word;word-break:break-all; '>"+item.pms_name+"</td>"+
     5           "<td style='word-wrap:break-word;word-break:break-all; '>"+item.content+"</td>"+
     6           "<td style='word-wrap:break-word;word-break:break-all; '>"+item.status+"</td>"+
     7           "<td style='word-wrap:break-word;word-break:break-all; '>"+item.mark+"</td>"+
     8           "<td style='word-wrap:break-word;word-break:break-all; '>"+item.create_time+"</td>"+
     9           "<td style='word-wrap:break-word;word-break:break-all; '>" +
    10           "<button class='btn btn-info' id='update' align='center' onclick='update($(this))'>修改</button>&nbsp&nbsp"+
    11           "<button class='btn btn-warning' id='updateother' align='center' onclick='detail($(this))'>查看详情</button>" +
    12           "</td>"
    13       "</tr>"
    14 });

    Step2:javascript部分

     1  
     2 function detail(td) {
     3         document.getElementById("pageid").style.display="none"
     4         var tr=td.parent().parent()
     5         console.log(tr);
     6         var tdlist=tr.find("td");
     7         console.log(tdlist);
     8         var id=$(tdlist[0]).find('input').val()
     9         $.ajax({
    10                 url: '/getOne/'+id,
    11                 type: 'GET',
    12                 dataType: 'json',
    13                 timeout: 1000,
    14                 cache: false,
    15                 beforeSend: function () {
    16                     $("#mainbody").html('加载中...');
    17                 }, //加载执行方法
    18                 error: function () {
    19                     alert("数据加载失败!!!");
    20                 },  //错误执行方法
    21                 success: function (data) {
    22                     $("#mainbody").html('');
    23                     lists=""
    24                     var jsons=data ? data : [];
    25                     $.each(jsons, function (index, item) {//循环获取数据
    26                         lists +=
    27                             name+" : <span>"+item.pms_name+"</span><br />"+
    28                         content+" : <span>"+item.content+"</span><br />"+
    29                         status+" : <span>"+item.status+"</span><br />"+
    30                         remark+" : <span>"+item.mark+"</span><br />"
    31                      });
    32                     $("#mainbody").html(lists);
    33                 }
    34             })
    35 }

    Step3:Python+Flask 部分

    1 @app.route('/getOne/<id>',methods=['GET'])
    2 def getapi(id):
    3     sql="select id,pms_name,content,status,mark,create_time from flask_info where id="+id
    4     api = get_data(sql)
    5     return jsonify(api)

    Step4: db部分

     1 def get_data(sql1):#获取sql返回记录数
     2     db = sqlite3.connect('test_flask.db')
     3     cur = db.cursor()
     4     print(sql1)
     5     cur.execute(sql1)
     6     results=cur.fetchall()
     7     cloumn=get_table_colum()
     8     res = {}
     9     reslist = []
    10     print(results)
    11     for r in range(len(list(results))):
    12      for m in range(len(list(cloumn))):
    13          res[str(list(cloumn)[m])] = str(list(results)[r][m])
    14          reslist.append(res)
    15      res = {}
    16      print(reslist)
    17      cur.close()
    18      db.close()
    19      return reslist

    查询后得到的数据显示效果如下图所示:

    总结:本篇文章主要就是点击每一行数据后面的操作列表里面的【查看详情】按钮,当按钮被点击时$this(也就是当前这一行td标准单元格)会被当成一个参数传入,然后经过javascript 获取到当前这一行数据的id信息,最后将id作为sql里面的where查询条件进行数据查询并返回查询结果进行页面渲染。

    备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:

     添加关注,让我们一起共同成长!

  • 相关阅读:
    排序数据记录查询
    条件数据记录查询
    简单数据记录查询
    缓冲流
    转换流
    删除数据记录
    更新数据记录
    插入数据记录
    移动前端自适应适配布局解决方案和比较
    如何解决inline-block元素的空白间距
  • 原文地址:https://www.cnblogs.com/Wu13241454771/p/13571584.html
Copyright © 2020-2023  润新知