3 回答
TA贡献1804条经验 获得超2个赞
Heroku 团队实际上已经编写了关于构建部署在云中的应用程序的最佳实践的指南,称为 12 Factor App。他们有一个关于配置的部分,非常适合您正在寻找的内容。
主要概念是秘密配置或基于环境(例如本地与生产)更改的配置应存储为环境变量,并在您的代码库中称为环境变量。
例如:
DB_HOST = "db.mydomain.com" # Bad practice
DB_HOST = os.environ.get("DB_HOST") # Good practice
如果您使用 Docker 和 Docker Compose 等工具,您可以自动加载.env文件以将所有环境变量加载到您的环境中。此文件应存储在您的存储库之外,并与您的.gitignore文件一起忽略。
如果您不使用 Docker,您还可以安装 python 包,例如python-dotenv,以便在本地工作时从 .env 文件加载环境变量。
TA贡献2065条经验 获得超14个赞
这可以使用环境变量来实现,即,您使用 heroku cli 设置 heroku env 变量并使用您的 python 代码访问它们。在您的情况下,它将在 heroku cli 上执行此操作
heroku config:set DB_URI = your_db_uri_here
并在 python 中使用
import os
db_uri = os.environ.get('DB_URI', None)
希望能帮助到你
TA贡献1877条经验 获得超1个赞
Heroku 配置命令帮助管理您的应用程序的配置变量,例如数据库 URL、密钥等。您可以在此处阅读更多相关信息。一旦你在 Heroku 中设置了它们,你就不需要将它们存储在你的代码中。如果您不喜欢使用 Heroku CLI 设置这些值,您也可以使用Heroku Dashboard。
如上所述设置配置变量后,您可以使用环境变量在代码中访问它们。以下是 Python 的示例,它使用 boto 库并建立 S3 连接,从配置变量中获取S3_KEYand S3_SECRET。更多示例可在此处获得
from boto.s3.connection import S3Connection
s3 = S3Connection(os.environ['S3_KEY'], os.environ['S3_SECRET'])
现在,您可以安全地将代码推送到 Github。
添加回答
举报