In meinen Projekten habe ich Konfigurationsdaten im Datenspeicher (ein Datensatz pro config-Wert) dieser Klasse mit:
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
Ihre Anwendung dieser Wert zu erhalten tun würde:
API_KEY = Settings.get('API_KEY')
Wenn für diesen Schlüssel ein Wert im Datenspeicher vorhanden ist, erhalten Sie ihn. Ist dies nicht der Fall, wird ein Platzhaltereintrag erstellt und eine Ausnahme ausgelöst. Die Ausnahme erinnert Sie daran, zur Entwicklerkonsole zu wechseln und den Platzhalterdatensatz zu aktualisieren.
Ich finde, dass dies das Erraten der Einstellung der Konfigurationswerte erspart. Wenn Sie sich nicht sicher sind, welche Konfigurationswerte eingestellt werden sollen, führen Sie einfach den Code aus und es wird Ihnen sagen!
Werden die Einstellungen zwischen den Bereitstellungen von Versionen der Anwendung geändert? –
Ja, und kann auch während der Bereitstellung aktualisiert werden – hoju