En mis proyectos, puse los datos de configuración del almacén de datos (un registro por valor de configuración) usando esta clase:
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
su aplicación haría esto para obtener un valor:
API_KEY = Settings.get('API_KEY')
Si hay un valor para esa clave en el almacén de datos, la obtendrá. Si no lo hay, se creará un registro de marcador de posición y se lanzará una excepción. La excepción le recordará que vaya a Developers Console y actualice el registro de marcador de posición.
Creo que esto elimina las conjeturas de la configuración de los valores de configuración. Si no está seguro de los valores de configuración que debe establecer, ejecute el código y se lo indicará.
¿Cambiará la configuración entre las implementaciones de las versiones de la aplicación? –
Sí, y también se puede actualizar durante la implementación – hoju