2016-07-10 123 views
0

我正在製作Flask應用程序,我想知道是否可以爲路線呈現模板,但在功能完成後重定向用戶。目前使用Python 2.7這裏是我的例子燒瓶 - 異步呈現模板

@app.route('/loading/matched') 
def match(): 
    time_match() 
    return render_template('matched.html') 

def time_match(): 
    # match two users based on time 
    sleep(3) # pretend to be doing 
    return redirect('/loading/generation') 

我不知道從哪裏開始。有我應該使用的圖書館嗎?

+0

您不能發送頭(其朝向爲重定向)你已經開始發回響應主體(之後即呈現的模板)。 – dirn

回答

1

這聽起來更像是客戶端的一面嗎?你想要一個像加載欄的東西嗎?

您可以提供一個ajax路由,它會在服務器端啓動繁重的工作負載 - 而客戶端確實會顯示一些進度。一旦工作負載完成,您將呈現一個模板,而不是通過ajax加載。

對於asycn的工作量,你可以看看Celery,這是一個偉大的圖書館。它甚至可以一個單獨的服務器上做的工作......

更多來源Integration in Flask

+0

[與燒瓶和芹菜異步的好教程](http://blog.miguelgrinberg.com/post/celery-and-the-flask-application-factory-pattern) – Hannes

+0

感謝您的快速反應漢尼斯!基本上,在這條路線上,我向Spotify API發出了幾個請求。 API需要大約10秒才能完成並返回一個播放列表。我想在提出請求的同時呈現視圖 – einfalles

+0

因此,對Spotify的請求不會對呈現的模板有任何影響?你只是想擺脫在用戶端的延遲? – Hannes