2016-04-25 4 views
1

Webページから入力データをAJAXリクエストでFlaskアプリに送信しています。私のFlaskアプリケーションがこのデータを処理している間、私は何が起こっているかをユーザーに通知したい。それはコンソールスクリプトだったら、私はちょうどprint()このメッセージをだろう、すなわち:FlaskからWebブラウザにデータを動的かつ常にプッシュします(つまり、印刷文やフラッシュメッセージ)

Parsing file A ... 
Parsing file B ... 

しかし、動的ページの再読み込みを引き起こしていないWebブラウザにフラスコからデータをプッシュし、サーバ側からこのプロセスを開始する方法? 私はこの応答が一度行われているので、私はjsonをAJAX呼び出しに対する応答として使用できないと信じています。私はその時点で通知メッセージを渡したいと思います。

+0

@大統領主義は、この質問に重複をマークするのに適しています。 – Snuggert

答えて

1

あなたの問題への答え:Flask Streaming

あなたのルートは次のようになります。それが現在であるようので、さらに最終的な解決に来てあなたはおそらく、あなたの質問を指定する必要があり

from flask import stream_with_context, request, Response 
from werkzeug import secure_filename 

@app.route('/post_files') 
def parse_files(): 
    def generate(): 
     for file in request.files['file']: 
      filename = secure_filename(file.filename) 
      yield 'Parsing file ' + filename + ' ...\n' 
      parse_file(file) #your external parsing method 
    return Response(stream_with_context(generate())) 
+0

ありがとう、Snuggert。そしてこの場合、このアプローチでテキスト領域やdivを常時埋め込む方法は? 私はServer Send Eventsとsend_templateの例を見ましたが、どれも単純な 'stream_with_context'や純粋な' Response'に関するものはありませんでした –

関連する問題