Flask端口定义位置及Windows系统下Flask-PWA端口冲突问题解决咨询
嘿,我来帮你搞定这两个Flask相关的问题,都是日常开发里很常见的场景,一起来看看解决方案吧!
1. Flask中定义端口的常见位置
其实有好几种方式可以设置Flask应用的运行端口,根据你的启动方式选就行:
- 直接在代码里指定:找到你启动Flask应用的代码(一般是
app.py或者run.py这类文件),修改app.run()方法,加上port参数,比如:if __name__ == '__main__': app.run(port=8080) # 这里把端口改成你想要的数字 - 用环境变量临时设置:在启动应用前,先在命令行里设置环境变量(Windows系统用命令提示符):
然后再正常启动你的Flask应用(比如set FLASK_RUN_PORT=8080flask run或者python app.py)。 - 启动命令加参数:如果是用
flask run命令启动,直接在后面加--port参数:flask run --port 8080 - 生产环境服务器指定:如果用Gunicorn这类生产服务器部署,启动命令里绑定端口就行:
gunicorn -b 127.0.0.1:8080 app:app
2. 解决Windows下5000端口被旧Flask应用占用的问题
你遇到的这个情况,大概率是之前的旧Flask应用进程没彻底关掉,占用了5000端口。这里有几个解决办法:
方法一:释放被占用的5000端口
- 打开命令提示符,输入以下命令找到占用5000端口的进程ID(PID):
执行后会输出类似这样的内容:netstat -ano | findstr :5000TCP 127.0.0.1:5000 0.0.0.0:0 LISTENING 1234,最后那个数字1234就是占用端口的进程PID。 - 接着输入命令强制结束这个进程:
把taskkill /F /PID 12341234换成你查到的实际PID,/F参数是强制终止进程的意思。
方法二:给新的Flask-PWA应用设置自定义端口
不想折腾端口释放的话,直接给新应用换个端口就行,和第一个问题里的方法一样,选一种适合你的:
- 修改项目代码:找到项目里的启动文件,把
app.run()改成app.run(port=5001)(5001换成任意没被占用的端口都可以)。 - 启动前设置环境变量:进入项目目录后,先运行
set FLASK_RUN_PORT=5001,再启动应用。 - 启动命令加参数:用
flask run --port 5001命令启动项目。
其他排查小技巧
- 检查任务管理器:打开任务管理器,看看有没有
python.exe或者pythonw.exe的进程,要是有之前旧应用的进程,直接结束掉就行。 - 清空浏览器缓存:有时候浏览器会缓存旧页面,即使端口已经释放,可能还会显示旧内容,按
Ctrl+Shift+Delete清空缓存后再刷新试试。
内容的提问来源于stack exchange,提问作者Rabiya Khan
相关产品推荐
相关产品推荐

