【问题标题】:Questions about Heroku and Django settings关于 Heroku 和 Django 设置的问题
【发布时间】:2015-06-08 09:20:15
【问题描述】:

我已经尝试了很多次让我的应用程序在 Heroku 上运行,但都没有成功。他们在本地运行的事实似乎完全无关紧要。显然我不明白这是如何工作的。

所以……这里有几个问题,我决定将它们组合成一个关于 SO 的问题:

1. 为什么 Heroku 有这么多不同的地方会影响设置(Procfile、wsgi.py、config vars 和 settings.py)?

2.它们之间的关系如何?

3.哪个优先?

4.它们都必须完全相同吗?

5. 我应该如何处理/如何配置 Heroku Django 模板中给出的数据库设置?

  1. # 从 $DATABASE_URL 解析数据库配置
  2. DATABASES['default'] = dj_database_url.config()
  3. # 此行原为空白。我把文字放在这里以使其格式正确
  4. # 启用连接池(如果需要)
  5. DATABASES['default']['ENGINE'] = 'django_postgrespool'

a) DATABASE ['ENGINE'],在 DATABASE [default] 之后不会覆盖 DATABASE [default]?

b) 为什么这两者的格式与默认的 Django 设置(一个简单的字典)的格式不同,而不是所有这些额外且令人困惑的括号?

c) 是否应该将它们视为两种不同的设置,因此如果你想要两者都必须使用数据库路由器?

d) 为什么devcenter article 说要导入postgrespool,而template 却什么也没说?

e) 为什么“默认”optional 带有 dj_database_url 而 mandatory 带有 Django?

f)当我尝试注释掉第 82 行时,我收到关于重置查询的错误,为什么?

g) 我将配置变量中的 postgres 字符串作为 dj_database_url 的参数,但我得到一个名称错误,数据库未定义。为什么?

【问题讨论】:

    标签: django postgresql heroku


    【解决方案1】:

    你让这件事变得比实际困难得多。 dj_database_url 所做的只是使用环境变量来创建适合在 DATABASES 设置中使用的字典。它没有做任何其他事情。

    您链接到的 devcenter 文章提到 processpool 作为增加并发性的一种方式。当你刚开始时,它并没有说甚至暗示你需要它。此时您甚至没有理由阅读那篇文章。

    您需要阅读的唯一文章是 Getting started with Django 一篇,它确切地告诉您该做什么。

    【讨论】:

      猜你喜欢
      • 2014-03-17
      • 1970-01-01
      • 2014-08-21
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多