将python flask web项目移动到github时如何隐藏数据库连接url?

我使用 python 烧瓶框架开发 Web 应用程序。开发完成后,我将代码推送到github。然后,heroku 网络服务器自动从 github 获取代码。我想在 github 上隐藏我的应用程序的数据库连接 url 和 app.secret_key。我该如何处理这种情况?

我需要一个解决方案来帮助我隐藏应用程序的秘密信息。另外,我需要使用 github 将该信息移动到 heroku Web 服务器。


墨色风雨
浏览 195回答 3
3回答

慕婉清6462132

Heroku 团队实际上已经编写了关于构建部署在云中的应用程序的最佳实践的指南,称为 12 Factor App。他们有一个关于配置的部分,非常适合您正在寻找的内容。主要概念是秘密配置或基于环境(例如本地与生产)更改的配置应存储为环境变量,并在您的代码库中称为环境变量。例如:DB_HOST = "db.mydomain.com"  # Bad practiceDB_HOST = os.environ.get("DB_HOST")  # Good practice如果您使用 Docker 和 Docker Compose 等工具,您可以自动加载.env文件以将所有环境变量加载到您的环境中。此文件应存储在您的存储库之外,并与您的.gitignore文件一起忽略。如果您不使用 Docker,您还可以安装 python 包,例如python-dotenv,以便在本地工作时从 .env 文件加载环境变量。

翻翻过去那场雪

这可以使用环境变量来实现,即,您使用 heroku cli 设置 heroku env 变量并使用您的 python 代码访问它们。在您的情况下,它将在 heroku cli 上执行此操作heroku config:set DB_URI = your_db_uri_here并在 python 中使用import osdb_uri = os.environ.get('DB_URI', None)希望能帮助到你

冉冉说

Heroku 配置命令帮助管理您的应用程序的配置变量,例如数据库 URL、密钥等。您可以在此处阅读更多相关信息。一旦你在 Heroku 中设置了它们,你就不需要将它们存储在你的代码中。如果您不喜欢使用 Heroku CLI 设置这些值,您也可以使用Heroku Dashboard。如上所述设置配置变量后,您可以使用环境变量在代码中访问它们。以下是 Python 的示例,它使用 boto 库并建立 S3 连接,从配置变量中获取S3_KEYand S3_SECRET。更多示例可在此处获得from boto.s3.connection import S3Connections3 = S3Connection(os.environ['S3_KEY'], os.environ['S3_SECRET'])现在,您可以安全地将代码推送到 Github。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python