Dostęp do ustawień można uzyskać pod numerem request.registry.settings
lub pyramid.threadlocal.get_current_registry().settings
. Zachowuje się jak słownik.
Jeśli chcesz skorzystać z drugiego, to jest pobieranie ustawień bez żądania, muszę Cię ostrzec. Według the doc:
Ta funkcja powinna być używana bardzo oszczędnie, zazwyczaj tylko jednostka testowania kodu. prawie zawsze błędem jest używanie get_current_registry poza kontekstem testowania, ponieważ jego użycie powoduje, że można napisać kod, który nie może być ani łatwo przetestowany, ani skrypty w wersji .
Każda część kodu, który potrzebuje dostępu do ustawień, jest częścią aplikacji internetowej i powinna uzyskać dostęp do żądania, a nie do jakiegoś magicznie dostępnego globalnego. Możesz myśleć, że masz dobry powód, ale prawdopodobnie jest lepszy sposób. Jeśli chcesz o tym porozmawiać (może w innym pytaniu, jeśli jest to skomplikowane, jak może pomóc jakiś kod), chętnie pomogę ci znaleźć czysty sposób na zrobienie tego.
Dzięki. Edytowane w celu uczynienia go bardziej zrozumiałym w odpowiedzi. Nawiasem mówiąc, rejestr nie jest plikiem ustawień (zobacz http://pyramid.readthedocs.org/en/1.3-branch/glossary.html#term-application-registry). – madjar
Pamiętaj, że aby dodać ustawienie niestandardowe i użyć tej odpowiedzi, nie możesz dodać jej w nowej sekcji. Musisz dodać go do istniejącej sekcji [app: main]. Zobacz [dokumentację] (http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/environment.html#adding-a-custom-setting). – Zitrax