2017-03-10 4 views
0

Flaskを初めて使用しました。私はファイルをWebにアップロードし、exeプログラムを呼び出してファイルを処理し、プロセスのログを出力できる簡単なプロジェクトを作成したいと考えています。私はファイルをアップロードするためのテンプレートを少し修正して、私が望む機能を実装するためにhttp://flask.pocoo.org/docs/0.12/patterns/fileuploads/にしようとしました。リダイレクト後にFlaskが実行され続けない

ファイルを参照して自分のディレクトリに保存できましたが、processing_callメソッドを実行できませんでした。しかし、私はページをリフレッシュし、それがexeプログラムを実行できることがわかった。これは、processing_callが機能することを意味します。しかし、私が望むのは、ページをリフレッシュする必要なしにexeを呼び出すことです。

これは私のコードです:Python言語で

@app.route('/', methods=['GET', 'POST']) 
def upload_file(): 
if request.method == 'POST': 
    # check if the post request has the file part 
    if 'file' not in request.files: 
     flash('No file part') 
     return redirect(request.url) 
    file = request.files['file'] 
    # if user does not select file, browser also 
    # submit a empty part without filename 
    if file.filename == '': 
     flash('No selected file') 
     return redirect(request.url) 
    if file and allowed_file(file.filename): 
     filename = secure_filename(file.filename) 
     file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) 
     return redirect(url_for('uploaded_file', 
           filename=filename)) 
     processing_file() 
return render_template('uploadfile.html',subprocess_output=processing_file()) 

答えて

0

return文の後のコードは動作しません(私が知っているように、それはすべての言語で同じです)。だから何かする必要がある場合は、returnより前に実行してください。関数の実行中にユーザーをブロックしたくない場合は、タスクキュー(https://www.fullstackpython.com/task-queues.html)を非同期に呼び出す必要があります。

関連する問題