Skip to main content
 首页 » 编程设计

python之通过 jQuery $.ajax 将当前 html 状态保存到文件中 POST 到 Flask View

2025年05月04日37rubylouvre

在这几个小时里,放弃并发帖希望有人能帮助我。也许这是一个非常愚蠢的想法,但我:

  1. 有一个 html 页面,我使用一些 jQuery 控件对其进行了修改(在点击时将类添加到大量项目列表中,填充文本区域,更改页面标题等。
  2. 单击保存按钮时想要执行以下操作:

    $('#save').click(function() { 
        myhtml = $('html').html(); 
        $.ajax({ 
            type: "POST", 
            url: "http://127.0.0.1:5000/parse_data", 
            data: myhtml 
        }); 
    }); 
    
  3. 然后在 Python/Flask 方面:

    @app.route('/parse_me', methods=['GET', 'POST']) 
    def parse_me(): 
        if request.method == "POST": 
            #determine new filename based on #header id 
            #save new file with request.form data? request.something data?? 
            #using the new filename 
    

我阅读了 flask 文档,并尝试了许多变体。我认为我的问题主要在于我如何发送和解压缩数据。我得到的最接近的是使用:

data: JSON.stringfy(myhtml) 

然后在 python 方面,我可以通过执行“看到”该数据

print request.values 

在 parse_me() 方法中。任何帮助,将不胜感激。这似乎是我想要完成的“最简单”的解决方案:我用 jQuery 修改 dom,然后将我的更改发送到 flask,将它们打包到服务器上的一个新文件中。

请您参考如下方法:

解决了!

改变了:

$('#save').click(function() { 
    myhtml = $('html').html(); 
    $.ajax({ 
        type: "POST", 
        url: "http://127.0.0.1:5000/parse_data", 
        data: {html:myhtml} // made into a hash for retrieval 
    }); 
}); 

在 python 方面:

@app.route('/parse_data', methods=['GET', 'POST']) 
def parse_data(): 
    # updated: get value for key "html", encode correctly 
    data = request.form.get("html").encode("utf-8") 
    # do whatever with the data 
    return "Data retrieved" 

非常简单..喜欢 Flask!