簡體   English   中英

Flask 未激活調試模式

[英]Flask not activating debug mode

我開始使用 flask,我正在嘗試遵循一些教程,但我無法在調試模式下運行 Flask 應用程序。

我嘗試了我發現的最簡單的代碼:

from flask import Flask
app = Flask(__name__)

app.debug = True
# I have also tried with a configuration
# app.config.from_object('config')
# file with constant
# DEBUG = True

@app.route('/')
def hello_world():
    return 'Hello World!'

然后我跑

export FLASK_APP=hello_world.py
flask run

但我總是得到這個 output

 * Serving Flask app "hello_world.py"
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

當我運行print(app.debug)我得到False

這是 pip 凍結的 output:

click==7.1.2
Flask==1.1.2
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==1.1.1
Werkzeug==1.0.1

我有 python 3.8.2

我已經嘗試了以下步驟,它對我有用。

已將這些代碼行添加到我的app.py文件中。

if __name__ == "__main__":
    app.run(debug=True)

然后我使用命令行從終端運行程序

python3 app.py

它奏效了。

請找到下面的截圖

在此處輸入圖像描述

嘗試這個:

當你跑步時,

export FLASK_APP=hello_world.py

在上述之后運行此命令,

export FLASK_DEBUG=1

最后,

flask run

我希望這將啟動調試模式。

  • 確保您運行的是正確的程序,有時我們會在其他程序中進行更改並運行其他程序。
  • 還要確保設置 app.debug = True 與設置 FLASK_DEBUG 模式完全不同。

試試這個,這對我有用。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == "__main__":
    app.run(debug=True)

如果您使用的是 windows,只需在終端中輸入以下內容:
在 PowerShell 中:

$env:FLASK_ENV = "development"
flask run

在命令提示符下:

C:\path\to\app>set FLASK_ENV=development
flask run

對於 mac,您可能需要運行以下命令:

$ export FLASK_ENV=development
$ flask run

請享用 !!

有兩種方法可以運行 Flask App。

  • 環境變量
  • 以編程方式

    您需要使用 window set FLASK_APP = *(file_name)*命令exporting FLASK_APP文件的環境變量
set FLASK_APP = app.py`

而對於mac

export FLASK_ENV=development

您還可以通過導出FLASK_DEBUG=1與環境分開控制調試模式。 (為mac set命令並為window export

set FLASK_APP = app.py
set FLASK_DEBUG=1

但有時調試器在生產服務器上不起作用。 在生產機器上使用它是一個主要的安全風險。

編程方式,您必須在 Flask app.py 主文件中包含主要部分。 它將在調試模式下輕松運行您的應用程序,但不要使用flask run命令,僅使用python (file_name)命令。

from flask import Flask
app = Flask(__name__)

app.debug = True

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run(debug=True)   
python app.py

暫無
暫無

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

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