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 应用程序时如何自动刷新浏览器?