簡體   English   中英

AWS Beanstalk Django / Python運行本地問題

[英]AWS Beanstalk Django / Python Running Local Issue

我已經完成了Amazon提供的“ 將Django應用程序部署到AWS Elastic Beanstalk ”教程,但是我試圖在本地運行該項目,並且遇到了KeyValue錯誤 ,而該錯誤無法找到解決方案。

運行命令時: $ ./manage.py help

我收到此錯誤返回:

File "/Users/dave/Sites/djangodev/djangodev/settings.py", line 17, in <module>
    'NAME': os.environ['RDS_DB_NAME'],
File "/Users/dave/.virtualenvs/djangodev/bin/../lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'RDS_DB_NAME'`

我實際上正在嘗試運行$ ./manage.py runserver但是返回的runserver不存在錯誤。 這是因為我的settings.py文件中有錯誤。

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': os.environ['RDS_DB_NAME'],
        'USER': os.environ['RDS_USERNAME'],
        'PASSWORD': os.environ['RDS_PASSWORD'],
        'HOST': os.environ['RDS_HOSTNAME'],
        'PORT': os.environ['RDS_PORT'],
    }
}

這在AWS上運行良好。 在本地不是。 而且我並不感到驚訝,因為RDS_DB_NAME不在我的本地os.environ詞典中。

還有另一個stackoverflow問題也沒有提供解決方案。 Elastic Beanstalk不創建RDS參數

我讓它在AWS上運行,這只是很難運行一個本地實例。

經過大量的挖掘,但我找到了解決方案。 您需要本地回退到其他數據庫。

在您的settings.py文件中,將DATABASE變量替換為:

DATABASES = {}

try:
    from local_settings import *
except ImportError, e:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': os.environ['RDS_DB_NAME'],
            'USER': os.environ['RDS_USERNAME'],
            'PASSWORD': os.environ['
            'HOST': os.environ['RDS_HOSTNAME'],
            'PORT': os.environ['RDS_PORT'],
        }
    }

現在,在與settings.py相同的目錄中創建一個local_settings.py並輸入以下代碼:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'db.djangodb',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    }
}

MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = ()
TEMPLATE_DIRS = ()

現在,將您的local_settings.py文件添加到.gitignore文件中。

運行$ python manage.py syncdb ,現在您可以在本地運行django服務器了。

這大部分是我從此博客文章中獲得的復制面食: http : //grigory.ca/2012/09/getting-started-with-django-on-aws-elastic-beanstalk/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM