簡體   English   中英

在生產模式下在 Flask 中啟用調試模式

[英]Enable debug mode in Flask in production mode

在瓶子中,我需要做的就是啟用調試模式:

from bottle import debug

application = Bottle()
app = application
debug(True)

我如何在 Flask 框架中做同樣的事情?

要啟用調試模式,我會將以下代碼添加到 Flask 應用程序中:

app.config['ENV'] = 'development'
app.config['DEBUG'] = True
app.config['TESTING'] = True

我還建議為環境和調試設置環境變量。

$ export FLASK_ENV=development 
$ export FLASK_DEBUG=1

如果您在開發環境中; 你可以簡單地在你指定它Flask.run作為指定在這里

例子:

app.run(host='0.0.0.0', port='8080', debug=True)

您也可以采用另一種方法在修改default_config如圖所示這里

例子:

app.config['DEBUG'] = True
app.run(host='0.0.0.0', port='8080')

甚至導出FLASK_DEBUG=1 - 請記住, FLASK_DEBUG會覆蓋FLASK_ENV=development

正如您在下面看到的,Flask 表示以下內容:

在生產中部署時不要啟用調試模式。

盡管正如您所說,您希望在生產環境中啟用調試功能; 因此為什么我不會使用Flask.run因為它打算在開發環境中使用,而且我當然不會將FLASK_ENV設置為development

我建議你重新考慮在生產中調試的概念,因為生產不是為了調試; 簡單地說,我相信你想要在生產中調試的理由是錯誤的。

另一種可能的解決方案是使用以下(分叉,多進程):

from werkzeug.debug import DebuggedApplication  
application = DebuggedApplication(app, True)

在 Flask 1.0 版本中,您可以將環境變量設置為在運行 flask 命令時自動導入,但您需要安裝python-dotenv

然后你可以在你的頂級目錄中創建一個名為.flaskenv的新文件並在其中設置你的環境變量:

FLASK_APP=run.py
FLASK_DEBUG=1

如果有人在 Windows 中遇到同樣的問題,請跟進Gil Sousa 的回答

在文件中的代碼中添加這三行,

app.config['ENV'] = 'development'
app.config['DEBUG'] = True
app.config['TESTING'] = True

並且還在cmdanaconda prompt鍵入這些命令來設置調試模式,

$ set FLASK_ENV=development 
$ set FLASK_DEBUG=1

並且不要忘記在app.run()傳遞debug=True作為參數。

PS:如果你遵循這個答案,FYKI,現在燒瓶應用程序正在使用命令$set FLASK_APP=app.py然后$FLASK run $set FLASK_APP=app.py $FLASK run運行燒瓶應用程序。 這僅適用於 Linux 的 windows 使用export而不是set

在flask 庫中,您可以使用以下步驟啟用內置調試模式。

步驟 1:在您的項目文件中創建一個虛擬環境(最佳實踐):

python -m venv webserver

或者,使用 python3

python3 -m venv webserver

其中 webserver 表示虛擬環境的位置,文件夾將被保存為“webserver”。

最佳做法是使用文件夾名稱作為“venv”。

第 2 步:使用 Windows Powershell,導航到您的項目文件夾

cd "location of the project folder"

第三步:設置flask app變量來指定python腳本名稱:

$env:FLASK_APP="server.py"

第四步:設置flask環境變量,指定環境類型為“development”,激活調試器:

$env:FLASK_ENV="development"

第五步:激活項目的虛擬環境:

venv\scripts\activate

第 6 步:運行 Flask 應用程序:

flask run

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM