1
我使用eclipse開發我的Django項目,並將其部署到Heroku。爲了如果應用程序是在Heroku運行檢測,所述settings.py
修改:Heroku:如何檢測工頭是否正在運行
if 'DYNO' in os.environ: # Is running on Heroku
DEBUG = False
else:
DEBUG = True
...
if DEBUG==True:
DATABASES = {
'default': {
...
}
}
else: # For Heroku
# Parse database configuration from $DATABASE_URL
import dj_database_url
DATABASES = {'default':dj_database_url.config()}
# Honor the 'X-Forwarded-Proto' header for request.is_secure()
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
另外修改wsgi.py
:
from <myApp> import settings
if settings.DEBUG==True:
application = get_wsgi_application()
else: # For Heroku
from dj_static import Cling
application = Cling(get_wsgi_application())
上述修改以識別是否該應用與runserver
或本地運行在Heroku上。但是,如果我嘗試運行foreman start
而不是runserver
,則wsgi.py
中的設置將不起作用,因爲foreman
也需要Cling
。
有沒有一種方法可以檢測到應用程序是否由foreman
運行,以便我可以進行適當的設置?
謝謝,但我沒有試圖找出如果應用程序在本地還是在Heroku上運行。我正在嘗試確定應用程序是否使用'manage.py runserver'或'foreman start'在本地運行。 – 2015-01-21 03:48:59
@ yltang52對不起,我正在旅行。我更新了我的答案。 – 2015-01-21 06:53:01
太棒了!非常感謝。 – 2015-01-21 07:35:35