2014-06-22 78 views
0

我正在研究一個簡單的Flask Web應用程序。我使用Eclipse/Pydev。當我在應用程序上工作時,由於代碼更改,我必須經常重新啓動此應用程序。這就是問題所在。當我運行應用程序時,我可以看到我的本地主機上的框架,這很好。但是當我想關閉這個應用程序時,只需點擊應該在Eclipse中停止應用程序的紅色方塊,有時(經常),舊版本的應用程序會繼續運行,因此我無法測試新版本。在這種情況下唯一有幫助的是強制關閉Windows任務管理器中的每個進程。Python/Flask:應用程序在關閉後運行

你能告訴我如何解決這個問題嗎?先謝謝你。

編輯:這可能有所幫助:很多時候,我必須運行應用程序兩次。否則我無法連接。

+1

您是否在應用程序中設置了'app.debug = True'?請參閱[flask調試模式](http://flask.pocoo.org/docs/quickstart/#debug-mode),它將根據您的代碼更改自動重新加載應用程序。因此,您只需運行應用程序_once_。你也不應該在「調試模式」下運行它(不管在Eclipse中是什麼)。相反,只需將其作爲普通應用程序運行即可。如果您在調試模式下運行,由於任何中斷,線程不會停止,只會被阻止。這是你在做什麼? –

+0

@BurhanKhalid是的,我有調試模式設置。沒有調試模式,我認爲它工作得更好,但有時候也有問題。 –

回答

0

我有一件非常類似的事情發生在我身上。我使用CherryPy而不是Flask,但我的解決方案可能仍然適用於您。瀏覽器經常會在本地保存網頁,以便在每次訪問網站時不必重新下載它們。這被稱爲緩存,雖然它對普通網絡用戶非常有用,但它對於應用程序開發人員來說可能是一個真正的痛苦。如果您經常生成應用程序的新版本,則瀏覽器可能會顯示已緩存的舊版應用程序,而不是最新的版本。我建議每次重新啓動應用程序時清除緩存,或者完全禁用緩存。

+0

我試圖清除緩存但我的問題仍然存在。所以我試圖啓動Internet Explorer(我使用Chrome)並輸入http://127.0.0.1:5000/,我看到應用程序正在運行,但我之前在Eclipse中停止了它。可能它不會是緩存問題... –

1

這實際上不應該發生在最新版本的PyDev上(即:因爲PyDev 3.4.1:http://pydev.org/history_pydev.html,PyDev應該終止主進程的所有子進程)。

那麼,你可以檢查你使用的是哪個PyDev版本?

如果您使用的是最新版本的PyDev,則默認情況下可以使用Ctrl + Shift + F9終止/重新啓動。

但是,當你處理燒瓶時,你應該可以使用它來自動重新加載代碼更改,而無需通過設置use_reloader = True進行任何操作。 012e:我沒有真正測試過,但是它的文檔說你可以爲該運行設置重載標誌(use_reloader = True) - 而且PyDev甚至應該能夠調試它(我會更好的稍後查看並改進該區域的PyDev文檔)。

相關問題