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

Kal*_*tan 2 python visual-studio-code

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

python3 -m app.py
Run Code Online (Sandbox Code Playgroud)

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

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

Gin*_*pin 5

如果它是一个 Flask 应用程序,那么您可以创建一个launch.json配置,这将允许您使用 VS Code 的调试器运行您的 Flask 应用程序。启动配置支持许多选项,包括设置 Flask 应用程序所需的环境变量。

从安装VS CodePython 扩展开始,添加对“调试多种类型的 Python 应用程序包括 Flask)的支持。然后,按照VS Code 文档中的Flask 教程进行操作。

基本上,您需要在工作区的.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": "value of AAA env var",
                "BBB": "value of BBB env var",
                "CCC": "value of CCC env var"
            },
            "args": [
                "run",
                "--no-debugger",
                "--no-reload"
            ],
            "jinja": true
        },
    ]
}
Run Code Online (Sandbox Code Playgroud)

env部分是您设置所有环境变量的地方。默认情况下,它包含所需的FLASK_*相关变量,因为它使用flask 命令行工具来运行应用程序。

在这里,作为一个例子,我还设置自定义AAABBBCCC增值经销商。您可以像普通环境变量一样从代码中访问它:

@app.route('/test')
def root():
    aaa = os.environ.get("AAA")
    bbb = os.environ.get("BBB")
    ccc = os.environ.get("CCC")
    print(f'{aaa}, {bbb}, {ccc}')
    return f'{aaa}, {bbb}, {ccc}'
Run Code Online (Sandbox Code Playgroud)

然后从调试面板运行它:

运行代码

只需点击播放按钮,您就应该能够print在访问/test端点后从终端面板或浏览器中看到ed env 值。(如果您有多个终端,它应该出现在Python 调试控制台下)。

结果

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