In Pyramide muss ich meine Vorlagen nach verschiedenen Laufzeitumgebungen rendern - aktivieren Sie Google Analytics, verwenden Sie reduzierten Code usw. (in der Produktion). Gibt es einen einfachen Weg, die aktuelle Umgebung herauszufinden - vielleicht eine vorhandene Flagge, um herauszufinden, welche ini-Datei verwendet wurde?Gibt es eine einfache Möglichkeit, die Laufzeitumgebung in Pyramid zu finden
Antwort
Pyramid INI Dateien können arbitrary configuration entries enthalten. Warum also nicht ein Flag in Ihre Dateien aufnehmen, das zwischen Produktions- und Entwicklungsbereitstellungen unterscheidet?
Ich würde es so machen; in Ihrer Produktion INI-Datei:
[app:main]
production_deployment = True # Set to False in your development .ini file
Pässe dieser Wert auf den Pyramid-Konfigurator:
def main(global_config, **settings):
# ...
from pyramid.settings import asbool
production_deployment = asbool(settings.get(
'production_deployment', 'false'))
settings['production_deployment'] = production_deployment
config = Configurator(settings=settings)
können Sie nun Zugriff auf die Einstellungen von fast überall in der Pyramide Code. Zum Beispiel in einem Request-Handler:
settings = request.registry.settings
if settings['production_deployment']:
# Enable some production code here.
Allerdings würde ich auch mehr feinkörnigen Einstellung in diesem Fall benutzen; eine Markierung zum Aktivieren von Google Analytics, eine zum Reduzieren von Ressourcen usw. Auf diese Weise können Sie jede einzelne Einstellung in Ihrer Entwicklungsumgebung testen, Komponententests für diese Schalter usw. schreiben.
Ich setze diese Art von Ding als eine Umgebungsvariable wie etwa PYRAMID_ENV
, die über os.environ
angesehen werden kann. Zum Beispiel im Code:
import os
pyramid_env = os.environ.get('PYRAMID_ENV', 'debug')
if pyramid_env == 'debug':
# Setup debug things...
else:
# Setup production things...
Dann können Sie die Variable in dem Init-Skript gesetzt oder beim Starten des Servers:
PYRAMID_ENV=production python server.py
Docs über den Zugang zu Umweltvariablen: http://docs.python.org/library/os.html#os.environ
- 1. Gibt es eine einfache Möglichkeit, Kriterien in HQL zu konvertieren?
- 2. Gibt es eine einfache Möglichkeit, Routing in JSF zu implementieren?
- 3. Gibt es eine einfache Möglichkeit, JavaScript in WebStorm zu bewerten?
- 4. Gibt es eine einfache Möglichkeit, Bildabmessungen in Ruby zu erhalten?
- 5. Gibt es eine einfache Möglichkeit, mit Open MPI zu klingeln?
- 6. Gibt es eine einfache Möglichkeit, einen Code TextBox zu erstellen?
- 7. Gibt es eine einfache Möglichkeit, TypeScript-Definitionen zu installieren?
- 8. Gibt es eine einfache Möglichkeit, mit Basscss zu beginnen?
- 9. Gibt es eine einfache Möglichkeit, ein ASP.NET-Formular zu löschen?
- 10. Gibt es eine einfache Möglichkeit, den Flex Preloader zu verstecken?
- 11. Gibt es eine einfache Möglichkeit, Bilder schräg zu stellen?
- 12. Gibt es eine einfache Möglichkeit, Openshift Autoscaling zu testen?
- 13. Gibt es eine einfache Möglichkeit, Gulture mit Django zu verwenden?
- 14. Gibt es eine einfache Möglichkeit, alle gängigen Modulerweiterungen zu erhalten?
- 15. Gibt es eine einfache Möglichkeit, jshint mit Netbeans zu integrieren?
- 16. Gibt es eine einfache Möglichkeit, das Alphabet programmatisch zu erhalten?
- 17. gibt es eine einfache Möglichkeit, Index Array Nullen in Fortran zu finden?
- 18. Gibt es eine einfache Möglichkeit, Hoptoad mit CakePHP zu verwenden?
- 19. Gibt es eine einfache Möglichkeit, eine Tabelle in Prozedur umzubenennen?
- 20. Gibt es eine einfache Möglichkeit, nicht verwendete Baugruppenreferenzen in meinem .NET-Projekt zu finden?
- 21. Gibt es eine einfache Möglichkeit, InternalsVisibleToAttribute zu verwenden?
- 22. Gibt es eine einfache Möglichkeit, zwei System.Drawing.Color-Werte zu mischen?
- 23. Gibt es eine einfache Möglichkeit, Benutzer von Facebook zu erhalten?
- 24. Gibt es eine bessere Möglichkeit, zwischen HTML und JSON-Ausgabe in Pyramid zu wechseln?
- 25. Gibt es eine Möglichkeit, Creeps zu löschen?
- 26. gibt es eine Möglichkeit, die Videolänge in PHP zu bekommen?
- 27. Gibt es eine einfache Möglichkeit, (#) zu einem Dateinamen hinzuzufügen, wenn Sie einen doppelten Dateinamen finden?
- 28. Gibt es eine einfache Möglichkeit, Mediendateien in .NET abzuspielen?
- 29. Gibt es eine einfache Möglichkeit, eine bestimmte Tabelle zu finden, wenn Sie die dbml-Entwurfsansicht in Visual Studio verwenden?
- 30. Gibt es eine Möglichkeit, das n-te Zeichen zu finden?
Sweet bro! Danke für diese Tipps –