2017-02-10 3 views
-1

Ich brauche Daten aus dem Formular abrufen.Wie erhalten Sie Formulardaten in Flask?

Ich benutze JavaScript Formular zu erstellen:

<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> 

dann, die name="json" ich brauche, um Daten aus dem Eingabefeld zu bekommen.

Hier ist meine Ansicht Funktion:

@general.route("/microsoft/", methods=["GET", "POST"]) 
@csrf.exempt 
def microsoft(): 
    form = cgi.FieldStorage() 
    name = form['json'].value 
    return name 

Aber ich erhalte eine Fehlermeldung:

builtins.KeyError KeyError: 'json'

Helfen Sie mir Daten aus Form zu erhalten.

+0

können Sie mehr Details bitte geben? – WhatsThePoint

+0

@WhatsThePoint Skript überträgt Daten an den Python, wo sie verarbeitet werden. Ich muss Wertdaten aus dem 'name =" json "' –

Antwort

1

Get Formulardaten aus Flask Wunsch Objekt:

from flask import Flask, request 
app = Flask(__name__) 

@app.route('/', methods=['GET', 'POST']) 
def index(): 
    data = request.form['input_name'] 

Sie auch einen Standardwert festlegen 400-Fehler zu vermeiden, wie folgt aus:

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) 
+0

holen Danke und wie kann ich 'name' dekodieren? Weil Antwort Antwort 'eb2a-4390-8283-1be75d3ad422% 22% 2C% 22oid% 22% 3A% 22a3c6887f-614b-42b7-9a08-' –

+1

Das ist eine neue Frage ... Sie müssen möglicherweise meine Antwort akzeptieren und eine andere Frage schreiben :) –

Verwandte Themen