Flask 調(diào)試應用錯誤

2021-08-10 17:46 更新

對于生產(chǎn)應用,按照 記錄應用錯誤 中的描述來配置你應用的日志記錄和 通知。這個章節(jié)講述了調(diào)試部署配置和深入一個功能強大的 Python 調(diào)試器的要點。

有疑問時,手動運行

在配置你的應用到生產(chǎn)環(huán)境時時遇到了問題?如果你擁有主機的 shell 權限,驗證你 是否可以在部署環(huán)境中手動用 shell 運行你的應用。確保在同一用戶賬戶下運行配置 好的部署來解決權限問題。你可以使用 Flask 內(nèi)置的開發(fā)服務器并設置 debug=True , 這在捕獲配置問題的時候非常有效,但是 請確保在可控環(huán)境下臨時地這么做。 不要 在生產(chǎn)環(huán)境中使用 debug=True 運行。

調(diào)試器操作

為了深入跟蹤代碼的執(zhí)行,F(xiàn)lask 提供了一個方框外的調(diào)試器(見 調(diào)試模式 )。 如果你想用其它的 Python 調(diào)試器,請注意相互的調(diào)試器接口。你需要設置下面的參數(shù)來 使用你中意的調(diào)試器:

  • debug - 是否開啟調(diào)試模式并捕獲異常
  • use_debugger - 是否使用內(nèi)部的 Flask 調(diào)試器
  • use_reloader - 是否在異常時重新載入并創(chuàng)建子進程

debug 必須為 True (即異常必須被捕獲)來允許其它的兩個選項設置為任何值。

如果你使用 Aptana/Eclipse 來調(diào)試,你會需要把 use_debuggeruser_reloader 都設置為 False 。

一個可能有用的配置模式就是在你的 config.yaml 中設置為如下(當然,自行更改為適用 你應用的):

FLASK:
    DEBUG: True
    DEBUG_WITH_APTANA: True

然后在你應用的入口( main.py ),你可以寫入下面的內(nèi)容:

if __name__ == "__main__":
    # To allow aptana to receive errors, set use_debugger=False
    app = create_app(config="config.yaml")

    if app.debug: use_debugger = True
    try:
        # Disable Flask's debugger if external debugger is requested
        use_debugger = not(app.config.get('DEBUG_WITH_APTANA'))
    except:
        pass
    app.run(use_debugger=use_debugger, debug=app.debug,
            use_reloader=use_debugger, host='0.0.0.0')


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號