Python + Flask 项目开发实践系列《四》
欢迎关注【无量测试之道】公众号,回复【领取资源】,
Python编程学习资源干货、
Python+Appium框架APP的UI自动化、
Python+Selenium框架Web的UI自动化、
Python+Unittest框架API自动化、
资源和代码 免费送啦~
文章下方有公众号二维码,可直接微信扫一扫关注即可。
今天开始我们讲讲Flask Web实践项目开发中的修改功能是如何实现的。
Step1:html 部分
1 lists +="<tr>"+ //拼凑一段html片段 2 "<td style='word-wrap:break-word;word-break:break-all; '><input type='checkbox' id='itemid' name='testid' value='"+item.id+"'>"+item.id+"</td>"+ 3 "<td style='word-wrap:break-word;word-break:break-all; '>"+item.pms_name+"</td>"+ 4 "<td style='word-wrap:break-word;word-break:break-all; '>"+item.content+"</td>"+ 5 "<td style='word-wrap:break-word;word-break:break-all; '>"+item.status+"</td>"+ 6 "<td style='word-wrap:break-word;word-break:break-all; '>"+item.mark+"</td>"+ 7 "<td style='word-wrap:break-word;word-break:break-all; '>"+item.create_time+"</td>"+ 8 "<td style='word-wrap:break-word;word-break:break-all; '>" + 9 "<button class='btn btn-info' id='update' align='center' onclick='update($(this))'>修改</button>  "+ 10 "<button class='btn btn-warning' id='updateother' align='center' onclick='detail($(this))'>查看详情</button>" + 11 "</td>" 12 "</tr>"
Step2:javascript部分
1 function update(td) { 2 document.getElementById("pageid").style.display="none" 3 var tr=td.parent().parent() 4 console.log(tr); 5 var tdlist=tr.find("td"); 6 console.log(tdlist); 7 // alert(tdlist[0].innerHTML) 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 "<form action='/updateOne/"+item.id+"' method='POST'>"+ 28 name+":<input type='text' name='pms_name' value='"+item.pms_name+"'/><br />"+ 29 content+":<input type='text' name='content' value='"+item.content+"'/><br />"+ 30 status+":<input type='text' name='status' value='"+item.status+"'/><br />"+ 31 remark+":<input type='text' name='mark' value='"+item.mark+"'/><br />"+ 32 "<input class='btn btn-info' type='submit' value='提交' />" 33 }); 34 $("#mainbody").html(lists); 35 } 36 }) 37 }
Step3:Python+Flask 部分
1 2 @app.route('/updateOne/<id>',methods=['POST']) 3 def updateapi(id): 4 pms_name= request.form.get("pms_name") 5 content = request.form.get("content") 6 status = request.form.get("status") 7 mark = request.form.get("mark") 8 sql="update flask_info set pms_name='"+pms_name+"',content='"+content+"',status='"+status+"',mark='"+mark+"' where id="+id 9 print(sql) 10 execute_sql(sql) 11 return render_template("success.html") 12 13 @app.route('/getOne/<id>',methods=['GET']) 14 def getapi(id): 15 sql="select id,pms_name,content,status,mark,create_time from flask_info where id="+id 16 api = get_data(sql) 17 return jsonify(api)
Step4: db部分
1 2 def execute_sql(sql1): 3 db = sqlite3.connect('test_flask.db') 4 cur = db.cursor() 5 print(sql1) 6 cur.execute(sql1) 7 cur.close() 8 db.commit() 9 db.close()
页面效果如下:
总结:修改这里有一个需要注意点的就是渲染修改页面前需要先获取要修改的信息,然后修改了相应的内容后再提交,提交就会入库,这个过程数据就会被Update成功。
备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:
添加关注,让我们一起共同成长!