2013-05-12 70 views
1

我使用Flask和Apache構建網站,並且該網站已啓動並正在運行。Flask + Apache和500錯誤

但是,我遇到了這個奇怪的500錯誤:一個500錯誤將把網站關閉,並且該網站將永遠不會再次聯機,直到我重新啓動Apache。我希望Flask + Apache可以在500錯誤後服務下一個訪問者,無論如何,Flask是線程本地的。

假設下面occassion:

@app.route('/<ExpectSomeInteger>') 
def hello_world(ExpectSomeInteger): 
    aNumber = int(ExpectSomeInteger) 
    ..... 

顯然上面的代碼是錯誤的,它應該使用<int:ExpectSomeInteger>和東西。 如果某些訪客在「ExpectSomeInteger」的地方鍵入了一些字母,那麼燒瓶將返回500錯誤。

災難發生後,apache會向所有訪問者發送一個500錯誤頁面!我只能重新啓動Apache以使其再次工作!

這是正常的嗎?

我記得當我訪問一些PHP + MySQL網站時,即使在發生了一些非常嚴重的錯誤之後,該網站仍然可以像往常一樣爲下一個訪問者提供服務。

+0

你用什麼來主持應用程序? mod_wsgi的? – 2013-05-12 23:59:45

+0

我安裝了以下'apt-get install libapache2-mod-python'和 'sudo apt-get install libapache2-mod-wsgi' – 2013-05-13 00:03:01

+1

@GabySolis:你是否遵循['mod_wsgi'部署指南](http:// flask.pocoo.org/docs/deploying/mod_wsgi/)? – Blender 2013-05-13 00:03:47

回答

0

傳遞的類型轉換到路徑:現在

@app.route('/<int:an_integer>') 
def hello_world(an_integer): 
    ... 

an_integer保證是一個整數。當您傳遞除整數以外的任何內容時,會發送一個404響應。

+0

我很抱歉,但你沒有得到這個問題的觀點。 – 2013-05-13 00:04:05

+0

@GabySolis:那麼,你的方式是不正確的。你的Apache配置文件是什麼樣的? – Blender 2013-05-13 00:04:54

+0

它正在工作。我已經回答了我自己的問題。謝謝。 – 2013-05-13 00:24:49