运行Flask应用程序时如何在VSCode中设置环境变量?

时间:2020-06-10 04:29:39

标签: python visual-studio-code

我有一个Python Flask应用程序,并且有许多运行我的应用程序时需要设置的环境变量。我通常是这样运行我的应用的...

python3 -m app.py

我想要这样做,以便可以设置应用程序需要的所有环境变量,这样就不必在每次重新打开终端时都导出。如果它可以是特定于工作区的或特定于项目的,那将是很好的。

我知道像Pycharm这样的其他编辑器也可以做类似的事情,并且想知道如何在VS Code中做到这一点?

2 个答案:

答案 0 :(得分:3)

如果它是Flask应用程序,则可以创建 launch.json 配置,该配置将允许您run your Flask app in VS Code's debugger。启动配置支持许多选项,包括设置Flask应用所需的环境变量。

从安装Python extension for VS Code开始,添加对{<3}}的“ 调试多种类型的Python应用程序的支持”。然后,遵循{{3} },请参见VS Code文档。

基本上,您需要在工作区的 .vscode 文件夹中创建 launch.json 文件。

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "run-flask-app",
            "type": "python",
            "request": "launch",
            "module": "flask",
            "env": {
                "FLASK_APP": "/path/to/app.py",
                "FLASK_ENV": "development",
                "FLASK_DEBUG": "0",
                "AAA": "ENV AAA",
                "BBB": "ENV BBB",
                "CCC": "ENV CCC"
            },
            "args": [
                "run",
                "--no-debugger",
                "--no-reload"
            ],
            "jinja": true
        },
    ]
}

env部分中设置所有环境变量。默认情况下,它包含与FLASK_*相关的必需变量,因为它使用includes Flask来运行应用程序。

在这里,作为示例,我还设置了自定义AAABBBCCC var。您可以像普通的env vars一样从代码中访问它:

@app.route('/')
def root():
    aaa=os.getenv("AAA")
    bbb=os.getenv("BBB")
    ccc=os.getenv("CCC")
    return f'{aaa}, {bbb}, {ccc}'

然后从“调试”面板运行它:

Flask Tutorial

只需单击播放按钮,您就可以从“终端”面板中查看日志。 (如果您有多个终端,它应该显示在 Python调试控制台下)。

最后,通过将 .vscode / launch.json 文件保存在工作区文件夹下,则它是特定于工作区的,并且只会影响用于启动Flask应用程序的运行时环境。

答案 1 :(得分:0)

@Gino Mempin 我已经纠正了。问题是我错误地期望表达式被评估,我将变量设置为 - 想想像 "env": {"VAR": "dirname ${workspaceFolder}"} 这样的东西,VC 代码默默地按照所写的方式执行 - 将 VAR 设置为字符串而不对其进行评估。< /p>