2017-09-06 4 views
0

私はFlaskの簡単なWebサイトを構築しています。 pd.read_csvでCSVファイルを読み込み、解析して結果をFlaskテンプレートに出力します。FlaskのWebサイトをリフレッシュするたびにpd.read_csvを呼び出す方法は?

CSVファイルは毎日更新されます。しかし、Webサイトの結果は、サーバーを再起動するまで変更されません。あなたは少し概観を与えることを

次のように私は、CSVファイルを読んでいます:

data = pd.read_csv('Data.csv', 
        parse_dates=True, 
        infer_datetime_format=True, 
        index_col='Date') 

私は、たとえば、変数をテンプレートに値と機能を割り当てる:

# Variable 1 
    mean = data['BTC'].mean() 
    # Function 1 
    def std(): 
     return data['ETH'].std() 

     # Passing variables to template 
     return render_template('page.html', mean = mean, std = std()) 

そして、私はテンプレートに渡す変数がたくさんあります。次のように

マイapp_runコードスニペットは、次のとおりです。私はData.csvの変更は、サーバーを再起動せずにテンプレートに反映したい場合は

if __name__ == '__main__': 
    host = os.getenv('IP', '0.0.0.0') 
    port = int(os.getenv('PORT', 5000)) 
    app.debug = True 
    app.secret_key = 'longlistofweirdcharacters' 
    app.run(host = host, port = port) 

私は、何をすべきでしょうか?

+0

質問は少し曖昧ですが、24時間ごとに関数呼び出しを繰り返すことを検討していますか?またはエンドポイント呼び出しで? 私の推測では、あなたは同様のcronジョブを探していますか?セロリを使うこともできますし、単純な実装をこの質問で参照することもできます。 https://stackoverflow.com/questions/21214270/flask-run-function-every-hour – Ilhicas

答えて

0

read_csvへの呼び出しがどこであるかは不明です。しかし、テンプレートをレンダリングするビュー関数内になければなりません。

+0

read_csvは、表示されていないmain.pyです – user2968773

+0

これはまさに私の要点です。リクエストごとにリロードする場合は、ビュー自体にある必要があります。 –

+0

サンプル変数で試してみてください。出来た。残念ながら、私は、そのデータフレーム上でたくさんの操作/機能を持っています。ビューが乱雑になる以外の方法はないように見えます – user2968773

関連する問題