2011-08-18 22 views
45

Sto utilizzando la versione di Flask 0.7. Ho memorizzato il percorso di contenuto statico in un file di configurazione e caricato utilizzandoFlask - Accesso alla variabile di configurazione nel modello

app.config.from_envvar(<file_name>) 

Posso essere in grado di accedere a questa variabile di configurazione nel modello senza passare le variabili attraverso la vista?

+0

Ho utilizzato app.config.from_pyfile () per caricare la configurazione sulla variabile di configurazione del pallone. Dal momento che Flask 0.6; config, essendo una delle variabili globali, è disponibile nei modelli Jinja2 per impostazione predefinita. Quindi le variabili di configurazione possono essere facilmente accessibili come oggetto dizionario nei modelli. – ranendra

risposta

79

Ci sono alcune variabili globali che vengono passate nel contesto dei modelli per impostazione predefinita tramite il pallone (here è l'elenco completo), uno dei quali è config, che consente di accedere alla configurazione dell'applicazione dai modelli. Essendo un dizionario, è possibile accedervi utilizzando la sintassi config['MY_CONFIGURATION'] o config.MY_CONFIGURATION (questa sintassi per l'accesso agli elementi dict è specifica per Jinja).

D'altra parte, se si desidera passare dati arbitrari ai propri modelli senza doverli passare esplicitamente in ogni vista, è necessario utilizzare context processors.

+15

Vorrei solo ricordare che "Solo i valori in maiuscolo sono effettivamente memorizzati nell'oggetto di configurazione"; questo mi ha dato qualche minuto di confusione di fronte alla stessa domanda del manifesto. – mikewaters

+1

Non dimenticare di ricaricare Flask se stai salvando i tuoi valori di configurazione in un file Python in modalità debug, le modifiche in questo file non vengono guardate. – Epoc

+4

Esempio di utilizzo nel modello: '{{config.MY_CONFIGURATION}}' –

Problemi correlati