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)