• [^] # Re: Juste un détail...

    Posté par . En réponse à la dépêche Sortie de Flask 1.0. Évalué à 9.

    Je ne comprends pas le lien entre la fonction et la définition de la route. Je ne vois nulle part "pour telle route, appelle telle callback".

    C'est tout l'objet du décorateur "@app.route", pour être plus explicite le code python serait :

    from flask import Flask
    app = Flask(__name__)
    @app.route('/')
    def hello_world():
     return 'Hello, World!'
    @app.route('/foobar')
    def hello_world():
     return 'Foobar...'
    @app.route('/foo/', defaults={'id': 1})
    @app.route('/foo/<id>', methods=['GET', 'POST'])
    def foo(id):
     return 'Foo %s' % id

    Le décorateur @app.route('/') porte sur la fonction définit juste en dessous donc ici hello_world, c'est de cette façon que le "callback" est défini. Plusieurs décorateurs peuvent être définis pour une fonction comme pour foo().

    On peut aussi faire le routage avec la syntaxe:

    from flask import Flask
    app = Flask(__name__)
    def index():
     return 'Hello, World!'
    # ...
    app.add_url_rule('/', 'index', index)

    D'ailleurs @app.route() appelle app.add_url_rule()