User loader e UserMixin
Configuri LoginManager e il model utente.
User loader e UserMixin è una lezione Flask Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Flask Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Flask Academy include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
Meet Flask-Login
The Flask-Login extension manages who is logged in for you. It tracks the current user across requests so you do not wire sessions by hand.
pip install flask-loginCreate a LoginManager
Everything starts with a LoginManager. You create one instance and connect it to your app so Flask-Login can hook into requests.
from flask_login import LoginManager
login_manager = LoginManager()
login_manager.init_app(app)It Needs Two Things
To work, the manager needs a user model that follows its rules and a function that loads a user by id. Today you set up both.
The UserMixin Shortcut
Your model must expose a few properties like is_authenticated. The UserMixin class supplies them all, so you just inherit from it.
from flask_login import UserMixin
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)What UserMixin Gives You
UserMixin adds is_authenticated, is_active, is_anonymous, and get_id for free. That last one returns your user id as a string.
The user_loader Callback
Flask-Login stores only the user id in the session. It calls your user_loader on each request to turn that id back into a real user.
Register the Loader
Decorate a function with login_manager.user_loader. It receives the id from the session and must return a user object or None.
@login_manager.user_loader
def load_user(user_id):
return User.query.get(int(user_id))Ids Arrive as Strings
The id passed to your loader is always a string, since it came from a cookie. Cast it to int before querying an integer primary key.
return User.query.get(int(user_id))Return None for Unknowns
If the id matches no row, your loader should return None. Flask-Login then treats the request as coming from an anonymous visitor.
Override get_id If Needed
If your primary key is not named id, override get_id so it returns the right value. Most apps with a plain id column never touch it.
def get_id(self):
return str(self.uuid)Pieces Now Connected
With the manager, the UserMixin model, and a user_loader in place, Flask-Login can identify the current user on every incoming request.
Quick Check
Think about what the session actually stores between requests.
Recap
You wired a LoginManager, mixed UserMixin into your model, and wrote a user_loader. Flask-Login can now rebuild the current user from a session. 👤
Domande Frequenti
La lezione «User loader e UserMixin» è gratuita?
Sì — il testo completo di «User loader e UserMixin» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Flask Academy, passa a CoddyKit PRO. Il corso Flask Academy include 4 lezioni in totale.
Cosa imparerò in «User loader e UserMixin»?
Configuri LoginManager e il model utente. Eserciti Flask Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Flask Academy?
Non è richiesta alcuna esperienza precedente. Flask Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «User loader e UserMixin»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Flask Academy?
Sì. Ogni lezione Flask Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Hash delle password: mai salvarle in chiaro
- User loader e UserMixin
- login_user, logout_user e sessioni
- Proteggere le view con login_required