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

2022-07-04 17:28:15 浏览数 (1)

今天开始我们讲讲Flask Web实践项目开发中的修改功能是如何实现的。

Step1:html 部分

代码语言:javascript复制
lists  ="<tr>"  //拼凑一段html片段
    "<td style='word-wrap:break-word;word-break:break-all; '><input type='checkbox' id='itemid' name='testid' value='" item.id "'>" item.id "</td>" 
    "<td style='word-wrap:break-word;word-break:break-all; '>" item.pms_name "</td>" 
    "<td style='word-wrap:break-word;word-break:break-all; '>" item.content "</td>" 
    "<td style='word-wrap:break-word;word-break:break-all; '>" item.status "</td>" 
    "<td style='word-wrap:break-word;word-break:break-all; '>" item.mark "</td>" 
    "<td style='word-wrap:break-word;word-break:break-all; '>" item.create_time "</td>" 
    "<td style='word-wrap:break-word;word-break:break-all; '>"  
    "<button class='btn btn-info' id='update' align='center' onclick='update($(this))'>修改</button>&nbsp&nbsp" 
    "<button class='btn btn-warning' id='updateother' align='center' onclick='detail($(this))'>查看详情</button>"  
    "</td>"
"</tr>"

Step2:javascript部分

代码语言:javascript复制
function update(td) {
        document.getElementById("pageid").style.display="none"
        var tr=td.parent().parent()
        console.log(tr);
        var tdlist=tr.find("td");
        console.log(tdlist);
        // alert(tdlist[0].innerHTML)
        var id=$(tdlist[0]).find('input').val()
        $.ajax({
                url: '/getOne/' id,
                type: 'GET',
                dataType: 'json',
                timeout: 1000,
                cache: false,
                beforeSend: function () {
                    $("#mainbody").html('加载中...');
                }, //加载执行方法
                error: function () {
                    alert("数据加载失败!!!");
                },  //错误执行方法
                success: function (data) {
                    $("#mainbody").html('');
                    lists=""
                    var jsons=data ? data : [];
                    $.each(jsons, function (index, item) {//循环获取数据
                        lists  =
                        "<form action='/updateOne/" item.id "' method='POST'>" 
                        name ":<input type='text' name='pms_name' value='" item.pms_name "'/><br />" 
                        content ":<input type='text' name='content' value='" item.content "'/><br />" 
                        status ":<input type='text' name='status' value='" item.status "'/><br />" 
                        remark ":<input type='text' name='mark' value='" item.mark "'/><br />" 
                        "<input class='btn btn-info' type='submit' value='提交' />"
                     });
                    $("#mainbody").html(lists);
                }
            })
}

Step3:Python Flask 部分

代码语言:javascript复制
@app.route('/updateOne/<id>',methods=['POST'])
def updateapi(id):
    pms_name= request.form.get("pms_name")
    content = request.form.get("content")
    status = request.form.get("status")
    mark = request.form.get("mark")
    sql="update flask_info set pms_name='" pms_name "',content='" content "',status='" status "',mark='" mark "' where id=" id
    print(sql)
    execute_sql(sql)
    return render_template("success.html")

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

Step4: db部分

代码语言:javascript复制
def execute_sql(sql1):
    db = sqlite3.connect('test_flask.db')
    cur = db.cursor()
    print(sql1)
    cur.execute(sql1)
    cur.close()
    db.commit()
    db.close()

页面效果如下:

总结:修改这里有一个需要注意点的就是渲染修改页面前需要先获取要修改的信息,然后修改了相应的内容后再提交,提交就会入库,这个过程数据就会被Update成功。

友情提示:“无量测试之道”原创著作,欢迎关注交流,禁止第三方不显示文章来源时转载

0 人点赞