2017-09-06 33 views
0

我正在構建一個簡單的Flask網站。我通過pd.read_csv讀取CSV文件,分析它並將結果輸出到Flask模板。如何每次刷新Flask網站時調用pd.read_csv?

CSV文件每天更新​​。但是,在重新啓動服務器之前,網站上的結果不會改變。

爲了給你一個小的概述,

我讀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代碼片段如下:

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) 

我應該怎麼做,如果我想在Data.csv變化對模板反映無需重新啓動服務器?

+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