Trailing slash in Flask route

后端 未结 3 1298
太阳男子
太阳男子 2020-12-01 16:27

Take for example the following two routes.

app = Flask(__name__)

@app.route(\"/somewhere\")
def no_trailing_slash():
    #case one

@app.route(\"/someplace/         


        
3条回答
  •  青春惊慌失措
    2020-12-01 16:38

    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])
    

提交回复
热议问题