2016-07-05 3 views
1

[Newbie]インポートされたxlsxファイルにいくつかのデータ操作を行い、csvとして保存するPythonプログラムを作成しました。それはちょっと次のようになります。フラスコを統合したPythonコード構造

#!/usr/bin/env python2.7  

def main(): 

    imported_files = import_files_from_input_folder('/input/*.xlsx') 

    data_handling_functions(imported_files) 

    save_processed_files_to_output_folder('/output/') 

if __name__ = '__main__': 

    main() 

I「が入力」フォルダにそのファイルをアップロードして、プログラムを使用するユーザーのための(フラスコを使用して)Webアプリケーションを作成し、「出力から結果をダウンロードしたいです'フォルダー。 this topicと他のいくつかのおかげで、私は複数のファイルを '入力'フォルダにアップロードする方法を知っています。

私の最初の質問は、「出力」フォルダ内のすべてのファイルをリストしてユーザーにダウンロードさせる方法です。

私の2番目の質問は、どのようにフラスコ部分を既存のプログラムにラップ/統合するかです。

答えて

1

これは、基本的なフラスコのWebサーバがどのように見えるかです:アプリ内であなたの機能を統合するために非常に簡単です

from flask import Flask 
app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return "Hello World!" 

if __name__ == "__main__": 
    app.run() 

。 (helloのような)ルーティング関数を追加して、コード内のmainの中で通常呼び出す関数を呼び出し、その後、いくつかのダウンロードボタンと共にWebページに結果をレンダリングします。このために、あなたがそうのように、機能render_templateを使用し、パラメータとして(各ファイルを取得するために繰り返し処理できるように変更された)出力を与えることができる:

@app.route("/") 
def hello(): 
    return render_template('name_of_template', output = your_output) 

あなたはフラスコのドキュメントを見つけることができますhereとそれはすべてのことをする方法を示します。 jinja2 APIを使用してPythonコードをHTMLテンプレートに追加することをおすすめします。

{% for file in output %} 
    <!-- Output file inside html tag --> 
    <!-- Add a download button --> 
{% endfor %} 

あなたは

そしてもちろん、あなたがあなたのサーバー上のCSVを格納します神社hereについての詳細を見つけることができます:あなたはそのような何かを行うことができます。