Trailing slash in Flask route
If you want both routes to be handled the same way, I would do this:
app = Flask(__name__)
@app.route("/someplace/")
@app.route("/someplace")
def slash_agnostic():
#code for both routes
You are on the right tracking with using strict_slashes
, which you can configure on the Flask app itself. This will set the strict_slashes
flag to False
for every route that is created
app = Flask('my_app')
app.url_map.strict_slashes = False
Then you can use before_request
to detect the trailing /
for a redirect. Using before_request
will allow you to not require special logic to be applied to each route individually
@app.before_request
def clear_trailing():
from flask import redirect, request
rp = request.path
if rp != '/' and rp.endswith('/'):
return redirect(rp[:-1])