Windows10下flask run与编辑器运行Flask效果差异原因问询
两种启动方式效果差异的核心原因
1. flask run 命令的执行逻辑
flask run是Flask框架提供的官方CLI启动工具,它的运行逻辑独立于你的脚本代码:会优先读取系统环境变量、CLI传入的参数来配置服务,完全不会执行你代码中if __name__ == '__main__'代码块下的内容,所以你写的app.run(debug=True, port=8000)参数自然全部失效。- 默认配置下
flask run会使用5000端口、关闭debug模式,自然也不会开启代码修改自动重载功能,修改代码后必须手动重启服务才能生效。
如果需要通过flask run实现和直接运行脚本一致的效果,可直接传参启动,示例命令:
flask run --debug --port 8000
也可提前设置对应Windows环境变量后再启动:
set FLASK_DEBUG=1 set FLASK_RUN_PORT=8000
2. VSCode直接运行脚本的执行逻辑
- VSCode启动脚本时,是把你的Flask启动文件作为入口主程序执行,此时
__name__变量的值为__main__,会触发执行if __name__ == '__main__'下的代码,你写的app.run的所有参数都会生效,debug模式开启后自动重载功能自然也会生效,修改代码保存后会自动重启服务加载新的配置。
内容的提问来源于stack exchange,提问作者101is5
相关产品推荐
相关产品推荐

