FlaskのPOSTリクエストで呼び出されたpython 2.7関数に辞書を渡すにはどうすればいいですか?URLから派生したものではありませんが、私のスクリプト、例えばFlask経由で呼び出された関数にdictを渡す
@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
私はエラーを取得するPOSTリクエストを経由して試してみて、トリガは、my_function:
my_function() takes exactly 2 arguments (0 given)
私は、例えば、それらの両方のグローバルを宣言することでこれを避けることができ知っています
def my_function(foo, bar):
global foo
global bar
baz = foo + bar
Bu私には他の選択肢がありますか?
これらの変数はどこに定義されていますか? – Suever
これは貧弱なデザインの匂いがします。あなたは少しズームアウトして、これらの変数が何であるか、そしてなぜ彼らがこの外に住んでいるのかを教えてください。 – Suever
変数は、 'if name = __main__'の直後のグローバル名前空間で最初に定義された一対の辞書です。このスクリプトは、ユーザーがデータファイルをアップロードするHTMLフロントエンドをサポートしています。これにより、my_function以外のいくつかの関数呼び出しによっていくつかの中間的な分析ステップが実行され、一連の結果がPOSTリクエストによって返されます。辞書(ここではfooとbar)は、入力、中間ステップからの出力、アップロードされた最終結果を格納します。 – pniessen