Les règles en Flacon sont uniques. Si vous définissez l'absolu même URL pour la même fonction par défaut clash parce que vous êtes en train de faire quelque chose qui nous vous empêcher de faire car c'est de notre point de vue, c'est le mal.
Il y a une raison pourquoi vous voulez avoir plus d'une adresse URL absolue de la même extrémité et qui est rétro-compatibilité avec une règle qui existait dans le passé. Depuis WZ0.8 et Flacon de 0,8 vous pouvez spécifier explicitement un alias pour un itinéraire:
@app.route('/')
@app.route('/index.html', alias=True)
def index():
return ...
Dans ce cas, si l'utilisateur demande /index.html
Flacon rendra automatiquement une rediriger de façon permanente à juste /
.
Cela ne signifie pas qu'une fonction ne peut être lié à plus d'une url, mais dans ce cas, vous avez besoin de changer le point de terminaison:
@app.route('/')
def index():
...
app.add_url_rule('/index.html', view_func=index, endpoint='alt_index')
Ou sinon:
@app.route('/')
@app.route('/index.html', endpoint='alt_index')
def index():
...
Dans ce cas, vous pouvez définir une vue une seconde fois sous un nom différent. Cependant, ce est quelque chose que vous voudrez généralement à éviter, car le point de vue de la fonction serait de demande de chèque.point de terminaison pour voir ce qui est appelé. Au lieu de mieux faire quelque chose comme ceci:
@app.route('/')
def index():
return _index(alt=False)
@app.route('/index.html')
def alt_index():
return _index(alt=True)
def _index(alt):
...
Dans ces deux cas, l'URL de génération est - url_for('index')
ou url_for('alt_index')
.
Vous pouvez également le faire sur le système de routage de niveau:
@app.route('/', defaults={'alt': False})
@app.route('/index.html', defaults={'alt': True})
def index(alt):
...
Dans ce cas de l'url de génération est - url_for('index', alt=True)
ou url_for('index', alt=False)
.