S'il s'agit de données sensibles, vous ne devez pas les stocker dans le code source car elles seront archivées dans le contrôle de code source. Les mauvaises personnes (à l'intérieur ou à l'extérieur de votre organisation) peuvent y trouver. En outre, votre environnement de développement utilise probablement des valeurs de configuration différentes de celles de votre environnement de production. Si ces valeurs sont stockées dans le code, vous devrez exécuter un code différent en développement et en production, ce qui est compliqué et une mauvaise pratique.
Dans mes projets, je place les données de configuration dans le magasin de données en utilisant cette classe:
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
Votre application ferait ceci pour obtenir une valeur:
API_KEY = Settings.get('API_KEY')
S'il existe une valeur pour cette clé dans le magasin de données, vous l'obtiendrez. Si ce n'est pas le cas, un enregistrement d'espace réservé sera créé et une exception sera levée. L'exception vous rappellera d'aller dans la Developers Console et de mettre à jour l'enregistrement d'espace réservé.
Je trouve que cela évite de deviner la définition des valeurs de configuration. Si vous n'êtes pas sûr des valeurs de configuration à définir, exécutez simplement le code et il vous le dira!
Le code ci-dessus utilise la bibliothèque ndb qui utilise Memcache et la banque de données sous le capot, donc c'est rapide.
Mettre à jour:
jelder demandé comment trouver les valeurs Datastore dans la console App Engine et les définir. Voici comment:
Aller à https://console.cloud.google.com/datastore/
Sélectionnez votre projet en haut de la page s'il n'est pas déjà sélectionné.
Dans la liste déroulante Genre , sélectionnez Paramètres .
Si vous avez exécuté le code ci-dessus, vos clés s'afficheront. Ils auront tous la valeur NOT SET . Cliquez sur chacun d'eux et définissez sa valeur.
J'espère que cela t'aides!