Heroku上的Django settings.py + dj_database_url?

tba*_*rbe 4 django heroku

我跟随Heroku上的Django入门 - 它显示设置dj_database_url ...

DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}
Run Code Online (Sandbox Code Playgroud)

我是否应该完全按照上述方式离开?多数民众赞成我所做的 - 我的网站似乎工作得很好......

要么

我是否应该使用DATABASE_URL替换上面的内容 - 这是从heroku配置设置中提取的?

没有在任何地方使用DATABASE_URL - 它似乎正在使用上面设置的heroku工作而没有改变....但是当我用pg:info查看数据库时 - 我得到0个连接...这让我觉得没有连接到postgresql - 但是它的工作方式呢?

我还不太明白dj_database_url是如何使用Heroku工作的......有人能对此有所了解吗?

heroku pg:info
=== HEROKU_POSTGRESQL_GOLD_URL (DATABASE_URL)
Plan:        Dev
Status:      available
Connections: 0
PG Version:  9.1.6
Created:     2012-10-07 16:11 UTC
Data Size:   6.6 MB
Tables:      12
Rows:        27/10000 (In compliance)
Fork/Follow: Unavailable
Run Code Online (Sandbox Code Playgroud)

dbr*_*dbr 8

这是正确的.

在Heroku上运行时,有一个环境变量set(DATABASE_URL),其中包含数据库URL(类似于字符串postgres://,但具有长自动生成的用户名/密码/数据库名称,主机通常位于amazonaws上)

在本地运行时,DATABASE_URL未设置,因此使用您的default = '...'数据库URL(允许您在本地运行代码以进行开发,并部署到Heroku,而无需更改任何代码).

这是基于"12因子方法论"(整个文档几乎描述了Heroku的结构)

dj_database_url.config刚刚解析URL中的用户名/密码/主机/ DB-名称,并将其拆分成由Django的预期字典格式 - 该代码是相当简单的,如果你是好奇