如何在 Flask 中获取表单数据? [复制]
Posted
技术标签:
【中文标题】如何在 Flask 中获取表单数据? [复制]【英文标题】:How to get form data in Flask? [duplicate] 【发布时间】:2017-06-28 12:27:58 【问题描述】:我需要从表单中获取数据。
我使用 javascript 创建表单:
<script>
function checkAuth()
var user = ADAL.getCachedUser();
if (user)
var form = $('<form style="position: absolute; width: 0; height: 0; opacity: 0; display: none; visibility: hidden;" method="POST" action= " url_for("general.microsoft") ">');
form.append('<input type="hidden" name="token" value="' + ADAL.getCachedToken(ADAL.config.clientId) + '">');
form.append('<input type="hidden" name="json" value="' + encodeURIComponent(JSON.stringify(user)) + '">');
$("body").append(form);
form.submit();
</script>
然后我需要从name="json"
的输入字段中获取数据。
这是我的视图函数:
@general.route("/microsoft/", methods=["GET", "POST"])
@csrf.exempt
def microsoft():
form = cgi.FieldStorage()
name = form['json'].value
return name
但我得到一个错误:
builtins.KeyError KeyError: 'json'
帮我从表单中获取数据。
【问题讨论】:
你能提供更多细节吗? @WhatsThePoint 脚本将数据传输到处理它们的 Python。我需要从name="json"
中提取价值数据
【参考方案1】:
您可以使用form
属性从Flask 的请求对象中获取表单数据:
from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
data = request.form['input_name'] # pass the form field name as key
...
您还可以设置一个默认值以避免使用get()
方法出现400 错误,因为request.form
属性是一个类似dict 的对象:
from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
default_value = '0'
data = request.form.get('input_name', default_value)
...
【讨论】:
谢谢,我该如何解码name
?因为返回答案eb2a-4390-8283-1be75d3ad422%22%2C%22oid%22%3A%22a3c6887f-614b-42b7-9a08-
这是一个新问题...您可能需要接受我的回答并写下另一个问题:)以上是关于如何在 Flask 中获取表单数据? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在Python框架Flask中将图像文件从表单上传到数据库
如何在不提交 HTML 表单的情况下从数据库中获取数据? [复制]