Flask 調(diào)試應(yīng)用錯(cuò)誤

2021-08-10 17:46 更新

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

有疑問時(shí),手動(dòng)運(yùn)行

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

調(diào)試器操作

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

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

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

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

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

FLASK:
    DEBUG: True
    DEBUG_WITH_APTANA: True

然后在你應(yīng)用的入口( 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)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)