python - 你能解释一下环境变量是如何在这里工作的吗?
问题描述
我有一个在我的计算机上本地开发的项目。现在我想将它部署到 Heroku。对于本地版本,我使用 SQLite,对于 Heroku 版本,我将使用 PostgreSQL。
我找到了一个代码,它可以轻松地让我根据我“到达”程序的位置组合两个数据库:本地或 Heroku。
if on_heroku:
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ['DATABASE_URL']
else:
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://localhost:5432/myblog'
看起来很有趣,但我不明白背后的全部想法。有人可以向我解释它是如何工作的或推荐我读什么吗?
谢谢!
解决方案
据我了解, os.environ['DATABASE_URL'] 连接到您的应用程序中提供的 postgres db 插件的 postgres db url。但是,如果您的应用程序没有 heroku 连接(假设这是 中提供的条件on_heroku
),那么它会访问本地 postgres 数据库。
推荐阅读
- python-3.x - 从熊猫数据框中剥离和删除列
- python - 如何在 url django 中显示日期
- jwt - PrintJS 身份验证
- java - DialogFragment 未附加到活动并返回 null
- azure - 使用 .Net.Sdk.Functions 3.0.13 的 Azure 队列触发错误:错误索引方法“Function1”,存储:找不到有效的帐户信息组合
- ios - 在另一个闭包内的闭包中是否需要第二个 [弱自我]?
- angular - 如何使用来自 HTML 模板的复杂参数的 Angular 管道?
- javascript - Django 动态表单集只保存最后一个条目
- gcc - 从源代码构建 Java Native Access 期间的“无法识别的命令行选项”
- android - 通过 Intent 分享 Facebook