Wenn es sensible Daten ist, sollten Sie speichern Sie es nicht, wie es im Quellcode wird in die Quellcodeverwaltung eingecheckt. Die falschen Leute (innerhalb oder außerhalb Ihrer Organisation) können es dort finden. Außerdem verwendet Ihre Entwicklungsumgebung wahrscheinlich andere Konfigurationswerte aus Ihrer Produktionsumgebung. Wenn diese Werte im Code gespeichert werden, müssen Sie in der Entwicklung und Produktion einen anderen Code ausführen, was eine unordentliche und schlechte Übung ist.
In meinen Projekten habe ich Konfigurationsdaten im Datenspeicher Verwendung dieser Klasse:
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 diesen Wert zu erhalten tun würde:
AMAZON_KEY = Settings.get('AMAZON_KEY')
Wenn es ein Wert für das heißt Geben Sie den Datenspeicher ein, Sie werden es erhalten. 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!
Welche Art von Anmeldeinformationen? – systempuntoout
@systempuntoout Zum Beispiel meine Amazon AWS-Anmeldeinformationen für den Zugriff auf S3 –
Wenn Sie Ihre einfachen Anmeldeinformationen in Ihrem Quellcode nicht mögen, können Sie nur ein Konfigurationsmodell im Datenspeicher verwenden. Andernfalls könnten Sie Ihre Einstellungen in einer .ini-Datei speichern Zugriff mit [ConfigParser] (http://docs.python.org/library/configparser.html). – systempuntoout