Flask URL Route: Route plusieurs URL vers la même fonction
Je travaille avec Flask 0.9.
Maintenant, je veux Router trois URL vers la même fonction:
/item/<int:appitemid>
/item/<int:appitemid>/
/item/<int:appitemid>/<anything can be here>
La partie <anything can be here>
ne sera jamais utilisée dans la fonction.
J'ai copier la même fonction deux fois pour atteindre cet objectif:
@app.route('/item/<int:appitemid>/')
def show_item(appitemid):
@app.route('/item/<int:appitemid>/<path:anythingcanbehere>')
def show_item(appitemid, anythingcanbehere):
Y aura-t-il une meilleure solution?
25
demandé sur
Gaby Solis
2012-12-24 20:27:03
2 réponses
Pourquoi ne pas simplement utiliser un paramètre potentiellement vide, avec une valeur par défaut de None
?
@app.route('/item/<int:appitemid>/')
@app.route('/item/<int:appitemid>/<path:anythingcanbehere>')
def show_item(appitemid, anythingcanbehere=None):
53
répondu
Amber
2012-12-24 16:32:31
Oui-vous utilisez la construction suivante:
@app.route('/item/<int:appitemid>/<path:path>')
@app.route('/item/<int:appitemid>', defaults={'path': ''})
Voir l'extrait à http://flask.pocoo.org/snippets/57/
4
répondu
Jon Clements
2012-12-24 16:38:33