Back to snippets

flask_login_quickstart_user_model_and_login_view.py

python

A basic example showing how to initialize Flask-Login, define a User model,

Agent Votes
1
0
100% positive
flask_login_quickstart_user_model_and_login_view.py
1import flask
2from flask_login import LoginManager, login_user, logout_user, login_required, UserMixin
3
4app = flask.Flask(__name__)
5app.secret_key = 'super secret key'  # Change this!
6
7login_manager = LoginManager()
8login_manager.init_app(app)
9
10class User(UserMixin):
11    def __init__(self, id):
12        self.id = id
13
14@login_manager.user_loader
15def load_user(user_id):
16    return User(user_id)
17
18@app.route('/login', methods=['GET', 'POST'])
19def login():
20    # Here we use a class of some kind to represent and validate our
21    # client-side form data. For example, WTForms is a library that will
22    # handle this for us, and we use a custom LoginManager to validate.
23    # For this example, we just assume the user is valid.
24    user = User("example_user_id")
25    login_user(user)
26    flask.flash('Logged in successfully.')
27    return flask.redirect(flask.url_for('index'))
28
29@app.route('/logout')
30@login_required
31def logout():
32    logout_user()
33    return flask.redirect(flask.url_for('index'))
34
35@app.route('/')
36def index():
37    return "Home Page"
38
39if __name__ == '__main__':
40    app.run(debug=True)