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>  "+ 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自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:
添加关注,让我们一起共同成长!