Necesito obtener datos del formulario.
Yo uso JavaScript para crear formulario:
<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> entonces necesito obtener datos del campo de entrada que name="json" .
Aquí está mi función de vista:
@general.route("/microsoft/", methods=["GET", "POST"]) @csrf.exempt def microsoft(): form = cgi.FieldStorage() name = form['json'].value return namePero me sale un error:
builtins.KeyError KeyError: 'json'
Ayúdame a obtener datos del formulario.
Puede obtener datos de formulario del objeto de solicitud de Flask con el atributo de form :
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 ... También puede establecer un valor predeterminado para evitar errores 400 con el método get() ya que el atributo request.form es un objeto similar a un dictado:
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) ...