gpt4 book ai didi

python - 连接到动态数据库参数 sqlalchemy

转载 作者:行者123 更新时间:2023-11-29 11:45:01 29 4
gpt4 key购买 nike

我正在使用 sqlalchemy 连接到我的 python API 的数据库,如下所示:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@localhost/dbname'

我的问题是该项目中的其他开发人员具有不同的数据库用户名/密码。每当我们使用 git 推送拉取时,我们都必须重置这些值以适应开发人员数据库。有没有办法让 sqlalchemy 从文件中提取数据?这样我们就可以将其添加到 .gitignore 中。

或者有更简单的方法来实现这一点吗?

最佳答案

您想为此设置一个环境变量。由于每个环境对于其运行的计算机来说都是唯一的,因此每个团队成员都将从各自的环境中获取自己的连接字符串。我将展示 Zsh shell 的示例,但 Bash 或其他 shell 应该是等效的。

创建一个名为 ~/.zshenv 的文件(如果尚不存在)

在此文件中,添加行:

export DB_CONNECTION_STRING="mysql://username:password@localhost/dbname"

请注意,变量定义与其值之间不应有空格(即等号周围没有空格)。这对我来说是 Zsh 上的一个问题。

要应用此变量,请运行 source ~/.zshenv。它会在重新启动时自动加载,但我们不想每次更改环境变量时都注销/登录。通过运行 printenv | 验证变量是否已定义grep DB_CONNECTION_STRING

在flask中,只需定义以下内容(记住在顶部import os):

app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DB_CONNECTION_STRING')

使用环境变量确实是正确的方法。我曾经对东西进行硬编码,这是一种不好的做法,正如您所看到的,即使是像多个用户连接到同一个数据库这样的小事情也会成为问题。

编辑:请参阅 @rmn 关于实例文件夹 Flask 功能的评论;似乎是环境变量的可靠替代品(当然,这仅限于 Flask 应用程序,环境变量可以用于任何东西)

关于python - 连接到动态数据库参数 sqlalchemy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35091300/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com