我正在創建一個線程,在線程完成後,我想刷新用戶頁面並將其發送到另一個頁面。但我對python和燒瓶真的很陌生,所以我不知道該怎麼做。使用python/flask刷新用戶網頁
這是我到目前爲止的代碼:
nit = Thread()
def stampa():
print ("Starting")
com = "python plan.py"
proc = subprocess.Popen(com.split(),shell=False)
if proc.wait()!=0:
print ("Ne radi")
else:
print ("Radi")
return redirect('ended')
@app.route('/', methods=['GET','POST'])
def home():
return render_template("homepage.html")
@app.route('/start_thread', methods=['GET','POST'])
def start_thread():
global nit
nit = Thread(target = stampa)
nit.start()
return redirect('end')
@app.route('/end', methods=['GET','POST'])
def end():
global nit
if nit.is_alive():
return "Still working"
else:
return redirect('ended')
@app.route('/ended', methods=['GET','POST'])
def ended():
return "It has ended"
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)
的主頁模板剛剛1按鈕重定向到start_thread
。 我啓動線程的原因是因爲我不希望窗口在程序運行時凍結(大約需要5分鐘才能完成)。現在用戶必須手動刷新頁面以查看過程是否已完成,但我希望能夠自己完成。 有沒有人有解決方案? (或任何想法,我可以研究?)
http://www.celeryproject.org/和https://www.rabbitmq.com/會好看工具在。我認爲你需要在前端安裝一些JavaScript來完成你想要做的事情,據我所知,如果沒有客戶端發起的請求,服務器不能將內容「推」到客戶端。您可以使用'setInterval()'javascript函數定期檢查燒瓶端點的進度。 – abigperson