Если это конфиденциальные данные, вы не должны хранить их в исходном коде, так как они будут проверены в системе контроля версий.Не те люди (внутри или вне вашей организации) могут найти его там.Кроме того, ваша среда разработки, вероятно, использует другие значения конфигурации из вашей производственной среды.Если эти значения хранятся в коде, вам придется запускать другой код при разработке и производстве, что является грязной и плохой практикой.
В моих проектах я помещаю данные конфигурации в хранилище данных, используя этот класс:
from google.appengine.ext import ndb
class Settings(ndb.Model):
name = ndb.StringProperty()
value = ndb.StringProperty()
@staticmethod
def get(name):
NOT_SET_VALUE = "NOT SET"
retval = Settings.query(Settings.name == name).get()
if not retval:
retval = Settings()
retval.name = name
retval.value = NOT_SET_VALUE
retval.put()
if retval.value == NOT_SET_VALUE:
raise Exception(('Setting %s not found in the database. A placeholder ' +
'record has been created. Go to the Developers Console for your app ' +
'in App Engine, look up the Settings record with name=%s and enter ' +
'its value in that record\'s value field.') % (name, name))
return retval.value
Ваше приложение сделает это, чтобы получить значение:
AMAZON_KEY = Settings.get('AMAZON_KEY')
Если в хранилище данных есть значение для этого ключа, вы получите его.Если нет, будет создана запись-заполнитель и будет сгенерировано исключение.Исключение будет напоминать вам, что вы должны перейти в Консоль разработчика и обновить запись заполнителя.
Я считаю, что это отнимает догадки при настройке значений конфигурации.Если вы не уверены, какие значения конфигурации установить, просто запустите код, и он скажет вам!