AWS Beanstalk Django/Python运行本地问题
我已经完成了Amazon提供的“将Django应用程序部署到AWS Elastic Beanstalk”教程,但我试图在本地运行该项目,我遇到了一个KeyValue错误,我无法找到解决方案 运行命令时:AWS Beanstalk Django/Python运行本地问题,python,django,amazon-web-services,amazon-ec2,amazon-elastic-beanstalk,Python,Django,Amazon Web Services,Amazon Ec2,Amazon Elastic Beanstalk,我已经完成了Amazon提供的“将Django应用程序部署到AWS Elastic Beanstalk”教程,但我试图在本地运行该项目,我遇到了一个KeyValue错误,我无法找到解决方案 运行命令时: $。/manage.py帮助 返回此错误: File "/Users/dave/Sites/djangodev/djangodev/settings.py", line 17, in <module> 'NAME': os.environ['RDS_DB_NAME'], Fi
$。/manage.py帮助
返回此错误:
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'`
这在AWS上运行良好。本地情况并非如此。我并不感到惊讶,因为RDS_DB_名称不在我的本地os.environ字典中
还有一个stackoverflow问题也没有提供解决方案。
我让它在AWS上运行,只是让一个本地实例运行起来很困难 我花了很多时间才找到解决办法。您需要一个到不同数据库的本地回退 在settings.py文件中,将数据库变量替换为:
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 = ()
现在,将本地_settings.py文件添加到.gitignore文件中
运行$python manage.py syncdb
,现在就可以在本地运行django服务器了
大部分内容都是从我发现的这篇博文中抄袭的:
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 = ()