我需要从表单获取数据。
我使用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"。
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'
帮我从表格中获取数据。
从Flask的请求对象获取表单数据:
from flask import Flask, request app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def index(): data = request.form['input_name'] ...
你还可以设置默认值以避免400错误,如下所示:
from flask import Flask, request app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def index(): default_name = '0' data = request.form.get('input_name', default_name) ...