首页 > 解决方案 > 你能解释一下环境变量是如何在这里工作的吗?

问题描述

我有一个在我的计算机上本地开发的项目。现在我想将它部署到 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'

看起来很有趣,但我不明白背后的全部想法。有人可以向我解释它是如何工作的或推荐我读什么吗?

谢谢!

标签: pythonpostgresqlsqliteherokudeployment

解决方案


据我了解, os.environ['DATABASE_URL'] 连接到您的应用程序中提供的 postgres db 插件的 postgres db url。但是,如果您的应用程序没有 heroku 连接(假设这是 中提供的条件on_heroku),那么它会访问本地 postgres 数据库。


推荐阅读