V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sevenQu
V2EX  ›  Flask

flask,使用 flask-script 启动, vscode 应该如何开启调试模式?

  •  
  •   sevenQu · 2018-07-09 18:58:22 +08:00 · 2799 次点击
    这是一个创建于 2327 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网上也查了一些教程,目前已经可以在 vscode 启动了,就是不能进入调试模式,希望可以有人可以讲解旗下我下面的疑问

    • launch.json 配置代码如下
    {
    	"name": "Python: Flask (0.11.x or later)",
    	"type": "python",
    	"request": "launch",
    	"module": "flask",
    	"env": {
    		"FLASK_APP": "manage.py"
    	},
    	"args": [
    		"run"
    	]
    },
    
    • 由于是使用的 flask-script 启动,所以启动的命令是 python manage.py runserver
    • 如果我使用命令行工具 pyhton manage.py runserver 显示进入了调试模式
    • 备注,我的核心启动文件名字是 manage.py 不是 app.py
    • 目前上面的配置 vscode 已经可以启动 flask,就是无法进入调试模式,下面是启动的提示
     * Serving Flask app "manage.py"
     * Environment: production
       WARNING: Do not use the development server in a production environment.
       Use a production WSGI server instead.
     * Debug mode: off
     * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
    

    -----------------------分割线---------------------------------


    • 配置文件那里参数是 run 就可以,runserver 告知没有这个命令,按理说使用 manage.run 的话应该是 runserver,感觉很奇怪
    • 我试了 manager.add_command("runserver", Server(use_debugger=True))还是不行,其实我在 config 里已经设置了 DEBUG 为 True
    • 希望有经验的人可以指点我一下,告诉我 vscode 这里 flask 启动调试的原理,我感觉 vscode 启动和命令行启动肯定不一样,不知道 vscode 这里是怎么做的?
    1 条回复    2020-03-26 16:44:21 +08:00
    ludwigwangwang
        1
    ludwigwangwang  
       2020-03-26 16:44:21 +08:00
    我是这样改的:
    manager.add_command('runserver', Server(use_debugger=True,host='0.0.0.0',port='5000'))
    再在 launch.json 里面改成
    {
    "name": "Python: Flask (0.11.x or later)",
    "type": "python",
    "request": "launch",
    "stopOnEntry": false,
    "program": "${file}",
    "pythonPath": "${workspaceFolder}/venv/Scripts/python",
    //"pythonPath": "${config:python.pythonPath}",
    //"module": "flask",
    "cwd": "${workspaceFolder}",
    "env": {
    //"FLASK_APP": "${workspaceFolder}/manage.py"
    },
    "args": ["runserver"],
    "envFile": "${workspaceFolder}/.env",
    "debugOptions":[
    "RedirectOutput"
    ]
    }
    即当作单个文件来运行。
    回到 manage.py 页面,F5 运行。这样是有效的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5255 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:11 · PVG 17:11 · LAX 01:11 · JFK 04:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.