[英]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
並且還在cmd
或anaconda 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.