So entwickelte ein Django Web-Anwendung, und jetzt müssen Sie es in die Produktion bereitstellen, müssen aber noch weiter aktiv die Entwicklung (Bugfixes, Tweaks, Hinzufügen und Testen neuer Funktionen, etc.)
In der Entwicklungsumgebung Sie hatte wahrscheinlich Debuggen aktiviert, Performance-Einstellungen deaktiviert, verwendet SQLite als Datenbank und andere Einstellungen, die Entwicklung einfacher und schneller zu machen.
Aber in der Produktion benötigen, um das Debuggen zu deaktivieren, damit Leistung und Verwendung einer echten Datenbank wie MySQL oder PostgreSQL, etc.
Ich hoffe, Ihre Entwicklungsumgebung können Ihre Produktionsumgebung sowie zu simulieren, eine Art Inszenierung, so dass Ihre letzte Tests vor der Bereitstellung bietet die kleinste Delta.
Dies führt zu der Frage, wie Sie nahtlos verwalten Sie Ihre Entwicklung und Herstellung Einstellungen ohne Zugabe von Overhead?
Es stellt sich heraus gibt es sehr viele Diskussionen darüber, wie Django settings.py, dass sowohl eine Entwicklungs-und Produktionsumgebung unterstützt, zum Beispiel Setup:
Wir haben vor kurzem kam in dieser Frage, wenn wir bereit zur schlüsselfertigen Hub in die Produktion einzusetzen waren.
Ich wusste nicht wirklich, wie die oben genannten Lösungen, so ist dies, was ich kam mit:
Wenn die Umgebungsvariable ENTWICKLUNG gesetzt ist, verwenden Sie die Einstellungen-dev, um die Produktion zu überschreiben.
Ich war mit der Idee, die volle Kontrolle über die Einstellungen über die Umwelt haben liebäugelt, für maximale Flexibilität, aber am Ende dagegen entschieden, da es zu viel Komplexität hinzugekommen nicht genug bekommen.
Unsere settings_dev.py sieht etwa so aus:
DEBUG = True TEMPLATE_DEBUG = True COMPRESS_AUTO = True SESSION_COOKIE_SECURE = False DATABASE_ENGINE = 'sqlite3' DATABASE_NAME = '/tmp/dev.db' DATABASE_USER = '' DATABASE_PASSWORD = '' TEMPLATE_LOADERS = ( 'django.template.loaders.filesystem.load_template_source', 'django.template.loaders.app_directories.load_template_source', )
Die settings.py (full-Einstellungen für die Produktion) umfasst die folgenden Ausschnitt am Ende.
if os.environ.get('DEVELOPMENT', None): from settings_dev import *