Wie übergebe ich ein Wörterbuch in eine Python 2.7-Funktion über eine Flask POST-Anfrage aufgerufen, die nicht von der URL abgeleitet (oder über die POST-Anfrage eingehende) aber anderswo in meinem generiert Skript, zPass in dict zu Funktion über Flask aufgerufen
@app.route('/url_route', methods=['POST'])
def my_function(foo, bar):
baz = foo + bar # both are 'internal' variables, e.g. not via POST
(do other stuff with inbound data from POST request)
return baz, other stuff
Wenn ich versuche und Trigger my_function über die POST-Anfrage bekomme ich einen Fehler:
my_function() takes exactly 2 arguments (0 given)
Ich weiß, könnte dies vermeiden, indem sie sowohl global deklarieren, zum Beispiel
def my_function(foo, bar):
global foo
global bar
baz = foo + bar
Bu habe ich noch andere Alternativen?
Wo sind diese Variablen definiert? – Suever
Das riecht nach schlechtem Design. Können Sie etwas verkleinern und uns sagen, was diese Variablen sind und warum sie außerhalb davon leben? – Suever
Variablen sind Wörterbücher, die anfänglich im globalen Namespace definiert wurden, unmittelbar nachdem 'if name = __main__'. Dieses Skript unterstützt ein HTML-Frontend, über das der Benutzer eine Datendatei hochlädt, auf der mehrere intermediäre analytische Schritte durch mehrere Funktionsaufrufe außerhalb von my_function ausgeführt werden, und dann wird eine Reihe von Ergebnissen über eine POST-Anforderung zurückgegeben.Die Wörterbücher (hier foo und bar) speichern die Eingaben, Ausgaben der Zwischenschritte und die Endergebnisse, die hochgeladen werden. – pniessen