为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

墨色风雨 2022-01-11 17:15:26
我使用 python 烧瓶框架开发 Web 应用程序。开发完成后,我将代码推送到github。然后,heroku 网络服务器自动从 github 获取代码。我想在 github 上隐藏我的应用程序的数据库连接 url 和 app.secret_key。我该如何处理这种情况?我需要一个解决方案来帮助我隐藏应用程序的秘密信息。另外,我需要使用 github 将该信息移动到 heroku Web 服务器。
查看完整描述

3 回答

?
慕婉清6462132

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 文件加载环境变量。


查看完整回答
反对 回复 2022-01-11
?
翻翻过去那场雪

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)

希望能帮助到你


查看完整回答
反对 回复 2022-01-11
?
冉冉说

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。


查看完整回答
反对 回复 2022-01-11
  • 3 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信