Vscode Flask 热重载

问题描述 投票:0回答:3

使用 VisualStudio 代码,使用 anaconda 创建虚拟环境,并启动一个简单的 Flask 应用程序。

一切正常,但我希望能够看到刷新网站时所做的更改,而不是必须退出并重新启动应用程序。

这是我的简单应用程序:

'''Application Factory'''

import os
from flask import Flask, render_template, url_for
app = Flask(__name__)

#app.config['DEBUG'] = True #tried this did not work

@app.route("/")
def home():
    return render_template('index.html')


if __name__ == '__main__':
    app.run(debug=True) #also tried app.run(debug=True, use_reloader=True)

即使我已经设置了

debug=True
,当我进入终端并使用“
python -m flask run
”启动它时

我收到以下消息:

 * 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)

尽管我已经打开了调试,但看起来它仍在生产中。

后来我尝试了

export FLASK_ENV=development

并得到以下错误:

export : The term 'export' is not recognized as the name of a cmdlet, function, script file, or 
operable program. Check the spelling of the name, or if a path was included, verify that the path   
is correct and try again.
At line:1 char:1
+ export FLASK_ENV=development
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (export:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

有什么想法吗?我做错了什么?

python flask
3个回答
1
投票

您在 Windows 上工作,您应该使用 set 命令。

set FLASK_ENV=development

0
投票

除了使用 Windows 命令之外,这里还有两种解决方案:

  1. 使用

    FLASK_ENV=development
    设置 .env 文件。这将使您不必在全局或每次打开项目时手动设置 FLASK_ENV。有关 .env 或 python dotenv 配置的更多信息可以在here找到。

  2. 如果您想使用 Linux 命令,
  3. 请转移到 Windows Subsystem for Linux。您可以打开当前挂载的目录(mnt/c/users/.../projectdir)或将该目录复制到实际的Linux目录(/home/username/.../projectdir)中。后者(复制到 Linux)在性能和最佳实践方面更受青睐。鉴于您正在学习的教程可能是针对 bash 命令的,如果您不想继续将命令转换为 Windows,这可以为您节省一些麻烦。


0
投票

我可以使用此 launch.json 配置文件调试和重新加载(热重载)我的 Flask 项目。

因此,按 F5(调试)并保持调试模式全天打开。只需更改您的代码即可享受。这适用于 Windows 11,无需 WSL。请注意,这不会刷新浏览器中的页面,它只会在调试运行时重新加载 python 文件,但刷新页面时会加载更改。

.vscode/launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python Debugger: Flask",
            "type": "debugpy",
            "request": "launch",
            "module": "flask",
            "env": {
                "FLASK_APP": "app",
                "FLASK_DEBUG": "1",
                "FLASK_ENV": "development"
            },
            "autoReload": {
                "enable": true,
                "pattern": [
                    "**/*.py"
                ]
            },
            "args": [
                "run",
                "--no-debugger",
                "--no-reload"
            ],
            "jinja": true
        }
    ]
}
© www.soinside.com 2019 - 2024. All rights reserved.