1
我有一個功能,抓取網絡的數據和計算搜索的分數。但是,這可能需要一段時間,有時在完成執行之前網頁會超時。線程完成後,如何更改Flask中呈現的模板?
所以我創建了一個獨立的線程來執行函數,loading.html
告訴客戶端數據仍在被收集。一旦該功能在線程中結束,如何重新加載網頁以顯示output.html
,以顯示分數。
這是我至今一個簡單的版本:
from flask import Flask
from flask import render_template
from threading import Thread
app = Flask(__name__)
@app.route("/")
def init():
return render_template('index.html')
@app.route("/", methods=['POST'])
def load():
th = Thread(target=something, args=())
th.start()
return render_template('loading.html')
def something():
#do some calculation and return the needed value
if __name__ == "__main__":
app.run()
我怎麼路線我的應用程序render_template('output.html', x=score)
一次something()
線程裏面th
結束?
我想避免像redis這樣的任務隊列,因爲我想部署這個應用程序在網絡上,我不想招致費用(這是一個實驗和業餘愛好)。
與代碼了詳細的解答將有很大的幫助,因爲我是新來的燒瓶中,多線程
這工作就像我想要的一樣!謝謝!不知道爲什麼我沒有考慮過編寫javascript函數 – Apara