2

いくつかのフラスコ関数が接続されているため、次の場所で呼び出すことができます。

localhost:5000/FunctionA/inputs
localhost:5000/FunctionB/inputs
localhost:5000/FunctionC/inputs

functionC が FunctionA と FunctionB を呼び出せるようにしたい。どうすればいいですか?FunctionC で別の呼び出し (FunctionA など) を呼び出す呼び出しを記述しようとすると、呼び出しが無期限にハングします (理解できる - FunctionC は、エンドポイントが自由に functionA 要求を処理できるように、それ自体が終了するのを待っています)。

4

2 に答える 2

1

これはここで回答されています: Flask での複数のリクエストの処理

しかし、TLDR; run 関数を次のように設定するだけです。

app.run(threaded=True)

Flask サーバーを使用しており、開発中にこれを実行する必要があると想定しています。生産については、上記のリンクのオプションを確認してください

于 2015-04-29T14:37:14.253 に答える
0

何を求めているのか正確にはわかりませんが、ユーザーが functionC にアクセスしたときに、functionA と functionB のクライアント側で GET 要求を簡単に開始できます。AJAX を使用すると、ページをリロードせずにバックグラウンドでこれを行うことができます。jQuery は AJAX を簡単にします。Jinja テンプレートで、次のように jQuery をロードするだけです。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>

次に、ドキュメントがロードされたら (つまり、ユーザーが functionC にアクセスし、ページがレンダリングされたら)、次のようにします。

<script>
$(document).ready(function(){

    $.get("localhost:5000/FunctionA/inputs");
    $.get("localhost:5000/FunctionA/inputs");
});
</script>

上記のコードは、指定された URL に GET 要求を送信するだけで、それらからの応答を無視しますが、jQuery のドキュメントには、Flask アプリが返すデータを使用して何かを行う方法が示されています (たとえば、応答を取得し、それを functionC にURL 変数)。

本当にユーザーを各ビュー関数のサーバー側にリダイレクトしたい場合は、Flask のredirect関数を使用するだけです。これがドキュメントです。

お役に立てれば。

于 2013-12-26T21:44:28.610 に答える