【问题标题】:How to make an openshift Django app work locally as well, so I can test befor push it to production?如何使 openshift Django 应用程序也可以在本地工作,以便在将其推送到生产环境之前进行测试?
【发布时间】:2016-03-08 23:17:35
【问题描述】:

我在 Openshift 上创建了一个 Django 应用程序,经过所有配置后,它现在可以在服务器上正常运行。我使用 git 将文件拉到我的桌面,但调用 django-admin runserver 不起作用。有没有办法让它在本地也能正常工作?

【问题讨论】:

  • 您使用的是 openshift 的 django 模板还是您自己的?请发布一些代码以及您遇到的错误

标签: django localhost openshift


【解决方案1】:

使用manage.py runserver 而不是django-admin runserver 可能会为您节省一些troubles
您的所有设置都应该在settings.py 文件中。
然后将其添加到 settings.py 文件的顶部:

import os

# a setting to determine whether we are running on OpenShift
DEBUG = True
ON_OPENSHIFT = False
if os.environ.has_key('OPENSHIFT_REPO_DIR'):
    ON_OPENSHIFT = True
    DEBUG = False

然后根据需要更改 localhost 和 openshift 的设置,例如数据库:

DATABASES = {}
if ON_OPENSHIFT:
    url = urlparse.urlparse(os.environ.get('OPENSHIFT_POSTGRESQL_DB_URL'))
    DATABASES['default'] = {
        'ENGINE' : 'django.db.backends.postgresql_psycopg2',
        'NAME': os.environ['OPENSHIFT_APP_NAME'],
        'USER': url.username,
        'PASSWORD': url.password,
        'HOST': url.hostname,
        'PORT': url.port,
        }
else:
    DATABASES['default'] = {
        'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'appname',                      # Or path to database file if using sqlite3.
        # The following settings are not used with sqlite3:
        'USER': 'user',
        'PASSWORD': 'password',
        'HOST': 'localhost',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
        'PORT': '',
        }

或者使用if not DEBUG 代替if ON_OPENSHIFT

【讨论】:

    猜你喜欢
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多