Если это конфиденциальные данные, вы не должны хранить их в исходном коде, поскольку они будут проверены в системе контроля версий. Не те люди (внутри или вне вашей организации) могут найти его там. Кроме того, ваша среда разработки, вероятно, использует другие значения конфигурации из вашей производственной среды. Если эти значения хранятся в коде, вам придется запускать другой код при разработке и производстве, что является грязной и плохой практикой.
В моих проектах я помещаю данные конфигурации в хранилище данных, используя этот класс:
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
Ваше приложение сделает это, чтобы получить значение:
DOMAIN = Settings.get('DOMAIN')
Если в хранилище данных есть значение для этого ключа, вы получите его. Если нет, будет создана запись-заполнитель и будет сгенерировано исключение. Исключение будет напоминать вам о необходимости перейти в Консоль разработчика и обновить запись заполнителя.
Я считаю, что это отнимает догадки при настройке значений конфигурации. Если вы не уверены, какие значения конфигурации установить, просто запустите код, и он скажет вам!