Pass in a list of possible routes to Flask? Pass in a list of possible routes to Flask? flask flask

Pass in a list of possible routes to Flask?


Flask is based on Werkzeug and it has the AnyConverter to so that.

Basically it allows you to declare a Werkzeug rule like this:

Rule('/<any(about, help, imprint, class, "foo,bar"):page_name>')

So basically for flask it translates into:

from flask import Flaskapp = Flask(__name__)@app.route("/<any('option1', 'option2'):segment>")def hello(segment):    return "Hello {}!".format(segment)app.run()

Or if you want those list to be dynamically generated when the app starts:

from flask import Flaskapp = Flask(__name__)options = ['option1', 'option2']@app.route("/<any({}):segment>".format(str(options)[1:-1]))def hello(segment):    return "Hello {}!".format(segment)app.run()


This takes any string, checks the lists and calls the corresponding function:

from flask import Flaskapp = Flask(__name__)food = ['eggs', 'bacon', 'cheese']actions = ['run', 'walk', 'jump']cities = ['New York', 'London, Tokyo']  # or# cities = myDb.("SELECT cities FROM world")@app.route('/<string:var>')def doSomething(var):    if var in cities:        return travel(var)    elif var in food:        return eat(var)    elif var in actions:        return perform(var)    else:        # prevent error        return 'not found'def travel(var):    return 'travel to ' + vardef eat(var):    return 'eat some ' + vardef perform(var):    return 'have fun and ' + varif __name__ == "__main__":    app.run(debug=True)