Python 你能解释一下环境变量在这里是如何工作的吗?
我有一个在本地电脑上开发的项目。现在我想把它部署到Heroku。 对于本地版本,我使用SQLite,对于Heroku版本,我将使用PostgreSQL 我找到了一个代码,它可以让我轻松地结合两个数据库,这取决于我“接触”程序的位置:本地或HerokuPython 你能解释一下环境变量在这里是如何工作的吗?,python,postgresql,sqlite,heroku,deployment,Python,Postgresql,Sqlite,Heroku,Deployment,我有一个在本地电脑上开发的项目。现在我想把它部署到Heroku。 对于本地版本,我使用SQLite,对于Heroku版本,我将使用PostgreSQL 我找到了一个代码,它可以让我轻松地结合两个数据库,这取决于我“接触”程序的位置:本地或Heroku if on_heroku: app.config['SQLALCHEMY_DATABASE_URI'] = os.environ['DATABASE_URL'] else: app.config['SQLALCHEMY_DATABA
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连接(假设这是\u heroku上的
中提供的条件),那么它将访问本地postgres db。据我所知,os.Enviro['DATABASE\u URL']连接到应用程序中提供的postgres db插件的postgres db URL。但是,如果您的应用程序没有heroku连接(假设这是\u heroku
上的中提供的条件),那么它将访问本地postgres db。更简洁的编写方式是:
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL', 'postgres://localhost:5432/myblog')
因为另一种解决方案要求您编写逻辑来检测您是否在Herokuon_Heroku
上
基本上,如果环境变量DATABASE\u URL
存在,则取其值。如果没有,则使用默认值postgres://localhost:5432/myblog
一种更简洁的书写方式是:
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL', 'postgres://localhost:5432/myblog')
因为另一种解决方案要求您编写逻辑来检测您是否在Herokuon_Heroku
上
基本上,如果环境变量DATABASE\u URL
存在,则取其值。如果没有,则使用默认值postgres://localhost:5432/myblog