flask before request - add exception for specific route

flask, python

Solution

There are a couple of properties on the request object you can check, documented here, `request.path` is probably what you want. Can I suggest `request.endpoint` though, so you'll be covered should you decide to route your view to another url, or multiple urls

@app.before_request
def before_request():
    if 'logged_in' not in session and request.endpoint != 'login':
        return redirect(url_for('login'))

Problem

In the `before_request()` function (below), I want to redirect the user to `/login` if they are not yet logged in. Is there a special variable that will give me the current URL that will work as the below example does? ``` @app.before_request def before_request(): # the variable current_url does not exist # but i want something that works like it if (not 'logged_in' in session) and (current_url != '/login'): return redirect(url_for('login')) ``` I need to check that the current URL is `/login`, because if I don't the server goes into an infinite loop.

Original source

Related problems