Flask,将表单数据保存到json文件

3

我无法想象如何在服务器端保存数据。这是我的路由:

@app.route('/results', methods=['GET', 'POST'])
@login_required
def results():
    if request.method == 'POST':
        results = request.form
        return json.dumps(request.form)

我在这里将请求表单从字典转换为字符串。这是组成表单的HTML:

<form action = "/results" method = "POST">
                <input type="text" placeholder="Host" name="host" value="host">
                <input type="text" placeholder="Longname" name="longname" value="longname">
                <input type="text" placeholder="Shortname" name="shortname" value="shortname">
                <p><input class="btn btn-primary" type="submit" value="send"></p>

我制作了一个结果页面,以查看是否能将表单转换为JSON格式。 但现在我卡住了,不知道如何将结果保存到文件中。每次提交表单时,我都会收到类似以下内容的回复:

{hosts ["host": "a", "shortname": "c", "longname": "b"], ["host": "a", "shortname": "c", "longname": "b"]}

1
你想将表单保存在服务器上还是提供给用户/客户作为下载? - Daniel Hepper
1个回答

6

如果您仔细阅读JSON模块的文档,您会发现有一个dump方法,它像dumps一样工作。 您只需要提供一个文件对象即可:

    with open('file.json', 'w') as f:
        json.dump(request.form, f)
    return render_html('your_template.html')

这将把你的表单写入file.json文件。你可能想在Flask配置中设置一些内容来存储你计划保存的文件的完整路径。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接