J'ai besoin d'obtenir des données du formulaire.
J'utilise JavaScript pour créer un formulaire:
<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>
alors je dois obtenir des données du champ de saisie qui name="json"
.
Voici ma fonction d'affichage:
@general.route("/Microsoft/", methods=["GET", "POST"])
@csrf.exempt
def Microsoft():
form = cgi.FieldStorage()
name = form['json'].value
return name
Mais je reçois une erreur:
builtins.KeyError KeyError: 'json'
Aidez-moi à obtenir des données du formulaire.
Obtenez les données du formulaire à partir de l'objet de demande de Flask:
from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
data = request.form['input_name']
...
Vous pouvez également définir une valeur par défaut pour éviter une erreur 400, comme ceci:
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)
...