gpt4 book ai didi

python - 使用 Flask 在新页面上将 HTML 表单数据显示为 JSON

转载 作者:行者123 更新时间:2023-12-01 03:45:12 24 4
gpt4 key购买 nike

我在页面上制作了一个简单的 HTML 表单,我想从表单中收集所有数据,将其转换为 JSON,然后在新页面上显示该 JSON。我不需要也不想要数据库来保存这些数据,我只是希望它以正确的 JSON 格式输出到新页面上,以便使用它的人可以复制/粘贴该数据以用于其他用途。

我正在使用 Flask,这是我制作的 HTML 表单,它扩展了另一个基本布局页面:

{% extends "layout.html" %}
{% block content %}
<div class="container">
<form action="/display" method="post" id="employForm"
<fieldset>
<label>First Name
<input type="text" name="firstName" placeholder="Joe" required>
</label>
<label>Last Name
<input type="text" name="lastName" id="lastName" placeholder="Schmoe" required>
</label>

<label>
Department
<select name="department" required>
<option value="sales">Sales</option>
<option value="marketing">Marketing</option>
<option value="developer">Developer</option>
<option value="business">Business Relations</option>
<option value="sysAdmin">Systems Administration</option>
<option value="drone">Drone</option>
</select>
</label>
... goes on
</fieldset>
<button class="button-primary" type="submit" value="Submit" form="employForm">SUBMIT!</button>
</form>
</div>
{% endblock %}

表单比这个长一点,包含几种不同类型的表单数据。这是服务器端的东西(我制作的 Flask 应用程序):

from flask import Flask, render_template, request, jsonify

app = Flask(__name__)

@app.route('/')
def hello():
return render_template('home.html')

@app.route('/display', methods=["GET", "POST"])
def display():
result = request.form
return render_template('display.html', result=result)


if __name__ == "__main__":
app.run(host='0.0.0.0')

我感觉我已经很接近了。目前,在我点击提交后,我被重定向到显示页面,并打印出类似以下内容的内容(显然,具体数据会根据输入答案进行更改):

ImmutableMultiDict([('startDate', u'2016-08-03'), ('employmentStatus', u'intern'), ('firstName', u'Hola'), ('lastName', u'Schmoe'), ('department', u'marketing'), ('location', u'SanFran'), ('inNYC', u'Yes'), ('requests', u'Blah blah try this.')])

我在 Stack Overflow 和其他地方进行了大量搜索...我遇到的问题是,它们都提供了示例,其中一个人只想从其表单中收集一两个键,而不是整个形式。

此外,出于我的特定目的,我强烈希望数据以 JSON 形式返回并在 display.html 页面上显示。

作为引用,以下是我看过的一些没有多大帮助的问题:

How to post data structure like json to flask?

Getting form data from html form using flask and python

Flask request and application/json content type

Send Data from a textbox into Flask?

非常感谢任何指导。谢谢!

最佳答案

我看到你导入了 jsonify...你可以使用它...

@app.route('/display', methods=["GET", "POST"])
def display():
return jsonify(request.form)

或者您可以在模板中使用 tojson 过滤器

{{ 结果 | tojson }}

结果 = json.dumps(request.form)

我认为其中任何一个都会起作用。

关于python - 使用 Flask 在新页面上将 HTML 表单数据显示为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39048448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com