Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 你能解释一下环境变量在这里是如何工作的吗?_Python_Postgresql_Sqlite_Heroku_Deployment - Fatal编程技术网

Python 你能解释一下环境变量在这里是如何工作的吗?

Python 你能解释一下环境变量在这里是如何工作的吗?,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

我有一个在本地电脑上开发的项目。现在我想把它部署到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连接(假设这是\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')
因为另一种解决方案要求您编写逻辑来检测您是否在Heroku
on_Heroku


基本上,如果环境变量
DATABASE\u URL
存在,则取其值。如果没有,则使用默认值
postgres://localhost:5432/myblog

一种更简洁的书写方式是:

app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL', 'postgres://localhost:5432/myblog')
因为另一种解决方案要求您编写逻辑来检测您是否在Heroku
on_Heroku

基本上,如果环境变量
DATABASE\u URL
存在,则取其值。如果没有,则使用默认值
postgres://localhost:5432/myblog