2011-08-18 14 views
45

Używam oprogramowania Flask w wersji 0.7. Mam przechowywane ścieżkę zawartości statycznej w pliku konfiguracyjnym i ładowany jest za pomocąFlask - Uzyskiwanie dostępu do zmiennej konfiguracyjnej w szablonie

app.config.from_envvar(<file_name>) 

Mogę być w stanie uzyskać dostęp do tej zmiennej config w szablonie bez przechodzenia przez zmienne widoku?

+0

Użyłem pliku app.config.from_pyfile (), aby załadować konfigurację do zmiennej konfiguracyjnej skrzynki. Ponieważ kolba 0,6; config, będący jedną ze zmiennych globalnych, jest domyślnie dostępny w szablonach Jinja2. Następnie zmienne konfiguracyjne mogą być łatwo dostępne jako obiekty słownikowe w szablonach. – ranendra

Odpowiedz

79

Istnieje kilka zmiennych globalnych, które są domyślnie przekazywane w kontekście szablonów przez kolbę (here jest pełną listą), jedną z nich jest config, która umożliwia uzyskanie dostępu do konfiguracji aplikacji z szablonów. Będąc słownikiem, można uzyskać do niego dostęp za pomocą składni config['MY_CONFIGURATION'] lub config.MY_CONFIGURATION (ta składnia dostępu do elementów dict jest specyficzna dla Jinja).

Z drugiej strony, jeśli chciałbyś przekazać dowolne dane do szablonów bez konieczności ich przekazywania w każdym widoku, musiałbyś użyć context processors.

+15

Chciałbym zauważyć, że "tylko wartości zapisane wielkimi literami są faktycznie przechowywane w obiekcie konfiguracyjnym"; to dało mi kilka minut dezorientacji w obliczu tego samego pytania co plakat. – mikewaters

+1

Nie zapomnij załadować ponownie Flask, jeśli przechowujesz swoje wartości konfiguracyjne w pliku Pythona w trybie debugowania, zmiany w tym pliku nie są obserwowane. – Epoc

+4

Przykładowe użycie w szablonie: '{{config.MY_CONFIGURATION}}' –

Powiązane problemy