如何在 VSCode 中运行 Flask 应用并开启调试模式

梦强同学_3080

梦强同学_3080

2026-06-13

719人浏览

原创

必须用 vscode 的 launch.json 配 "module": "flask" 模式启动调试,否则断点不生效、热重载失效、flask shell 不可用;因终端环境变量和虚拟环境不被 vscode 调试器识别,且 "program": "app.py" 会绕过 flask cli。

如何在 vscode 中运行 flask 应用并开启调试模式

直接结论:不能靠终端里敲 flask run 或 python app.py 启动调试,必须用 VSCode 的 launch.json 配 "module": "flask" 模式,否则断点不生效、热重载失效、flask shell 不可用。

为什么 flask run 在终端能跑,但 VSCode 调试按钮点不动

VSCode 的调试器不读你终端里 export FLASK_APP=app.py 的环境变量,也不自动激活虚拟环境。它只认 launch.json 里写的 env 或 envFile。更关键的是:如果配置成 "program": "app.py",就绕过了 Flask CLI,所有基于 CLI 的功能(--reload、--debug、flask shell)全失效,断点也大概率不触发。

  • 必须用 "module": "flask",不是 "program"
  • envFile 必须指向项目根目录下的 .env 文件,内容为:
    FLASK_APP=app.py<br>FLASK_DEBUG=1
    (注意:Flask ≥2.3 已弃用 FLASK_ENV)
  • 项目必须用 File → Open Folder 打开整个文件夹,不能只打开 app.py 单个文件
  • 确保 VSCode 底部状态栏显示的 Python 解释器路径,和你 pip install flask 的环境一致

launch.json 必须包含哪些字段才能稳定调试

缺一不可,否则要么找不到应用,要么端口绑定失败,要么断点进不去。

  • "module": "flask" —— 强制走 Flask 官方启动流程,支持 CLI 特性
  • "args": ["run", "--host=127.0.0.1:5000", "--no-reload", "--no-debugger"] —— --no-reload 防止 Werkzeug fork 子进程导致断点丢失;--no-debugger 避免和 VSCode 调试器冲突
  • "envFile": "${workspaceFolder}/.env" —— 不能写相对路径或硬编码绝对路径
  • "justMyCode": true —— 关闭第三方库断点干扰(调试 Flask 自身逻辑时可临时设为 false)

完整示例:

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
{
  "name": "Flask: Run",
  "type": "python",
  "request": "launch",
  "module": "flask",
  "args": ["run", "--host=127.0.0.1:5000", "--no-reload", "--no-debugger"],
  "envFile": "${workspaceFolder}/.env",
  "justMyCode": true
}

用了工厂函数 create_app() 怎么配

入口不再是 app = Flask(...),而是通过函数返回实例,FLASK_APP 无法直接指向文件,必须显式指定模块和函数名。

  • .env 中删掉 FLASK_APP=app.py,改用 args 传参
  • "args" 改为:["--app", "app:create_app", "run", "--debug", "--no-reload"](假设 app.py 里定义了 create_app())
  • 若文件在子目录如 src/app.py,则写成 "--app", "src.app:create_app",并确保项目根目录是 Python 模块搜索路径(即 src 上级目录被设为工作区)
  • 代码中不能保留 if __name__ == '__main__': app.run(...),会和 launch.json 冲突

断点不生效、改代码后静默退出的真正原因

根本不是 Flask 配置错,而是 Werkzeug 的 --reload 机制在 fork 子进程,VSCode 默认只 attach 主进程,旧断点挂在已销毁的进程上。

  • 最稳方案:调试阶段坚持用 --no-reload,手动 Ctrl+C + 重启
  • 非要热重载?可试 "subProcess": true,但 Windows 下成功率低,且可能 attach 失败
  • 检查文件编码是否为 UTF-8 无 BOM,BOM 会导致 ImportError,进而让 reloader 静默失败
  • 断点别打在模块顶层(比如 app.run() 下面),必须打在路由函数内部——只有请求上下文里,request、session 等对象才可用

复杂点在于:路径、环境变量、启动方式三者必须对齐。少一个,Could not locate a Flask application 就立刻报出来;多一个干扰项(比如残留的 app.run()),调试就变成玄学。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
flask框架如何搭建
flask框架如何搭建

搭建步骤:1、安装Python和Pip;2、创建虚拟环境;3、安装Flask;4、创建Flask应用;5、运行应用;6、访问应用。想了解更多flask框架的相关内容,可以阅读本专题下面的文章。

2024.06.27

3535

8

Python Flask框架
Python Flask框架

本专题专注于 Python 轻量级 Web 框架 Flask 的学习与实战,内容涵盖路由与视图、模板渲染、表单处理、数据库集成、用户认证以及RESTful API 开发。通过博客系统、任务管理工具与微服务接口等项目实战,帮助学员掌握 Flask 在快速构建小型到中型 Web 应用中的核心技能。

2025.08.25

5364

10

Python Flask Web框架与API开发
Python Flask Web框架与API开发

本专题系统介绍 Python Flask Web框架的基础与进阶应用,包括Flask路由、请求与响应、模板渲染、表单处理、安全性加固、数据库集成(SQLAlchemy)、以及使用Flask构建 RESTful API 服务。通过多个实战项目,帮助学习者掌握使用 Flask 开发高效、可扩展的 Web 应用与 API。

2025.12.15

296

16

vscode是什么_vscode怎么安装配置
vscode是什么_vscode怎么安装配置

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

2023.06.30

1335

18

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.21

2832

3

vscode使用的框架介绍
vscode使用的框架介绍

VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1949

12

vscode一般用来写什么语言
vscode一般用来写什么语言

VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1727

8

vscode可以写什么语言
vscode可以写什么语言

vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

2607

12

vscode中文设置方法
vscode中文设置方法

方法一:在设置页面中,搜索“locale”,并选择“zh-cn”。方法二:按“Ctrl Shift P”快捷键,输入“Configure Display Language”,将语言修改为“zh-cn”。如果上述方法无效,可考虑安装中文插件。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1818

14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程