Flask - Web 服务器不会在代码更改时重新加载

Posted

技术标签:

【中文标题】Flask - Web 服务器不会在代码更改时重新加载【英文标题】:Flask - Webserver not reloading on code change 【发布时间】:2018-02-10 23:37:41 【问题描述】:

由于某种原因,127.0.0.1:5000(端口 5000)卡在显示我未更新的旧文件。

from flask import Flask
app = Flask(__name__)

@app.route("/")
def index():
    return "Home page"

@app.route("/about")
def about():
    return "About page"

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

我更改了端口,它工作正常。 但是,当我更改并运行我的代码时,为什么 5000 没有更新? 我检查了是否有多个进程正在运行,但没有一个。

老实说,这是一个菜鸟问题,但我似乎找不到其他遇到此问题的人。

【问题讨论】:

...你有另一个烧瓶在某处运行... 运行这些命令会看到什么:$ telnet localhost 5000$ ps aux | grep 5000 谢谢,但我确实解决了这个问题。是的,它在某个地方运行。我在命令中statnet -a -b 发现python 仍在侦听端口5000。所以,我刚刚结束了任务。现在,我的问题是,如果我手动决定何时运行和结束服务器,它怎么还在监听? @BryanHinchliffe,我知道这已经很老了,但我遇到了同样的问题。你是如何设法解决这个问题的?我正在使用 Windows 计算机和 Pycharm。谢谢 @Ana 抱歉回复晚了。我假设您现在已经解决了这个问题,但如果有帮助,我必须手动终止在端口 5000 上运行的 Python 进程。您可以使用this 答案(选项 2)来查找并终止进程。希望这会有所帮助! 【参考方案1】:

按 CTR + C 在终端上结束您的服务器并将其复制并粘贴到终端中以再次运行 Flask

FLASK_DEBUG=1 flask run

这将设置调试模式:开启

【讨论】:

术语“FLASK_DEBUG=1”未被识别为 cmdlet 的名称【参考方案2】:

在 powershell 中设置变量 -

$env:FLASK_DEBUG=1

【讨论】:

【参考方案3】:

不!您尚未在调试模式下运行您的应用。

app.run(debug=True)

这样,您的代码中的任何更改都将重新启动服务器,并且您的代码更改将实时反映。

【讨论】:

【参考方案4】:

我不知道为什么会这样。其他答案没有帮助。社区应该提供帮助。

其他两个选项:

    如果您使用的是 Visual Studio Code,请关闭并打开它。

    卸载并重新安装python。

【讨论】:

重启 VSCode 对我有用,谢谢!【参考方案5】:

使用 Shift+F5 重新加载页面。但请确保应用应处于调试模式,即 app.run(debug=True)

【讨论】:

【参考方案6】:

如果您使用的是内置 app.run(),请尝试添加 app.run(debug=True) 解决了。​​

【讨论】:

【参考方案7】:

Flask 服务器不知何故冻结了。对我来说,解决方案是在任务管理器中杀死 pythonw.exe 进程。

【讨论】:

以上是关于Flask - Web 服务器不会在代码更改时重新加载的主要内容,如果未能解决你的问题,请参考以下文章

为啥代码更改时自动重新加载仅用于使用 Gunicorn 进行调试?

Flask SocketIO 自动重新加载不起作用(在代码更改/开发中)

使用 Python 开发 Flask 应用程序时如何自动刷新浏览器?

在 Flask Web 服务器中使用 Pyomo 时如何解决错误?

flask-migrate

文件更改时,两个带有 Nodemon 的后端服务器不会在 docker 容器中重新加载