2016-11-05 7 views
1

erstellt Ich habe die folgende Konfiguration für meine Flasche Anwendung:Flask Zugriff auf Variablen Config wenn App innerhalb der Funktion

Dateistruktur:

run.py 
app/ 
    __init__.py 
    views/ 
    main/ 
     __init__.py 
     main.py 
    ... 

__init__.py

def createpp(): 
    app = Flask(__name__) 
    ... 
    return app 

main.py

... 

key = app.config['KEY'] 
hashingID = hash(key) 

@main.route('/', methods=['POST', 'GET']) 
def main(): 
    ... 
    return render_template('main/main.html') 

... 

Wie Sie sehen können, möchte ich app.config['KEY'] von main.py zuzugreifen. Das Problem ist, da App innerhalb von create_app() konfiguriert ist, kann ich es nicht einfach importieren.

hashingID ist immer konstant und wird in vielen verschiedenen Routen verwendet, sonst hätte ich einfach

gesetzt haben
key = app.config['KEY'] 
hashingID = hash(key) 

innerhalb der Route.

Gibt es eine Möglichkeit, um auf Config-Variablen von einer App-Instanz zuzugreifen, die innerhalb einer Funktion generiert wird? Vielen Dank.

Antwort

0

Es hängt davon ab, was Sie versuchen zu tun.

Sie können in this project sehen, wo wir die Flask Instanz innerhalb einer create_app Funktion, und dann von derselben Funktion übergeben die app Variable in einer Reihe von anderen Funktionen erstellen, die unsere verschiedenen Konfigurationsaufgaben ausführen.

Der Rückgabewert der Funktion create_app wird letztlich zu einem Top-Level-app Variable in dem Modul zuzugeordnet, die durch den Import es als notwendig (wie here) kann dann in anderen Module zugegriffen werden.

Verwandte Themen