2015-12-16 9 views
5

Voglio fare in modo che il mio progetto Flask esegua sempre un metodo prima di eseguire qualsiasi percorso. Invece di decorare ogni metodo percorso nel mio progetto con un decoratore personalizzato, voglio essere in grado di fare qualcosa del genere:Flask: come eseguire un metodo prima di ogni rotta in un progetto?

def my_method(): 
    do_stuff 

section = Blueprint('section', __name__) 

# Register my_method() as a setup method that runs before all routes 
section.custom_setup_method(my_method()) 

@section.route('/two') 
def route_one(): 
    do_stuff 

@section.route('/one') 
def route_two(): 
    do_stuff 

Poi fondamentalmente sia /section/one e /section/two verrà eseguito my_method() prima di eseguire codice in route_one() o route_two().

C'è un modo per farlo?

risposta

10

È possibile utilizzare il before_request decoratore per progetti. In questo modo:

@section.before_request 
def my_method(): 
    do_stuff 

Registra automaticamente la funzione da eseguire prima di tutti i percorsi che appartengono al progetto.

Problemi correlati