使用Flask编写网页代码后访问http://127.0.0.1:5000/运行其他代码的解决方法
解决Flask运行显示非预期代码的问题
这种情况我碰到过好几次,大概率是启动配置、进程冲突或者路径问题导致的,咱们一步步排查:
检查
FLASK_APP环境变量是否指向正确文件
Flask默认会根据FLASK_APP变量指定的文件启动服务,如果这个变量指向了旧的代码文件,自然会跑错内容。- 在终端里先查看当前设置:Linux/macOS输入
echo $FLASK_APP,Windows输入echo %FLASK_APP% - 如果显示的不是你的目标文件,重新设置:Linux/macOS用
export FLASK_APP=你的文件名.py,Windows用set FLASK_APP=你的文件名.py - 设置完成后重启Flask服务
- 在终端里先查看当前设置:Linux/macOS输入
排查是否有旧的Flask进程占用端口
有时候之前启动的Flask服务没彻底关掉,端口5000被旧进程霸占,新的代码根本没跑起来。- Linux/macOS:输入
lsof -i :5000找到进程PID,然后用kill <PID>(PID是数字)杀掉进程 - Windows:输入
netstat -ano | findstr :5000找到PID,然后用taskkill /F /PID <PID>强制结束进程 - 杀完进程后重新启动你的Flask应用
- Linux/macOS:输入
确认运行命令的工作目录正确
如果你在错误的文件夹下执行flask run,Flask可能会加载该目录下的其他Flask文件(比如同名的app.py)。- 先切换到你的代码所在的文件夹:Linux/macOS用
cd /你的代码路径,Windows用cd 你的代码路径 - 再执行启动命令,或者直接用绝对路径指定文件:
FLASK_APP=/绝对路径/你的文件名.py flask run
- 先切换到你的代码所在的文件夹:Linux/macOS用
强制刷新浏览器缓存
有时候浏览器会缓存旧页面,让你误以为代码没生效。试试:- Windows/Linux:按
Ctrl+Shift+R强制刷新 - macOS:按
Cmd+Shift+R强制刷新 - 或者直接打开隐私/无痕窗口访问
http://127.0.0.1:5000/
- Windows/Linux:按
开启调试模式自动重载代码
如果没开调试模式,修改代码后Flask不会自动重启,你可能一直在跑旧代码。启动时加上调试模式:- Linux/macOS:
FLASK_APP=你的文件名.py FLASK_DEBUG=1 flask run - Windows:
set FLASK_DEBUG=1 && flask run
调试模式开启后,修改代码保存会自动重启服务,避免手动重启遗漏的问题
- Linux/macOS:
检查是否有同名文件冲突
如果你的代码文件名是app.py这种通用名称,可能系统里其他路径下有同名的旧文件被Flask加载了。试试把你的文件改个独特的名字(比如my_personal_app.py),然后重新设置FLASK_APP指向新文件名再启动。
内容的提问来源于stack exchange,提问作者Bhargav Vanamala N
相关产品推荐
相关产品推荐

