0
0
Djangoframework~10 mins

Messages framework for flash messages in Django - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Messages framework for flash messages
View adds message
Message stored in session
Redirect or render response
Template reads messages
Messages displayed to user
Messages cleared from session
The view adds a message which is saved in the session. Then the template reads and shows it once, after which the message is removed.
Execution Sample
Django
from django.contrib import messages
from django.shortcuts import redirect

def my_view(request):
    messages.success(request, 'Profile updated!')
    return redirect('home')
This code adds a success flash message and redirects the user to the home page.
Execution Table
StepActionMessage StorageTemplate ReadsMessage Displayed
1View calls messages.success()Message added to session storageNoNo
2Redirect to 'home' triggeredMessage remains in sessionNoNo
3Template renders on 'home' pageMessage available in sessionYesYes: 'Profile updated!'
4After rendering, message cleared from sessionSession message removedNoNo
💡 Message is removed after being displayed once to avoid repeated showing.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
messages in sessionempty['Profile updated!']['Profile updated!']emptyempty
Key Moments - 3 Insights
Why does the message disappear after one page load?
Because the messages framework stores messages in the session and clears them after the template reads and displays them, as shown in execution_table step 4.
Can messages be added without redirecting?
Yes, messages can be added and displayed on the same page render, but they still follow the same lifecycle of being stored and then cleared after display (see execution_table steps 1 and 3).
Where are messages stored temporarily?
Messages are stored in the user's session between requests, as shown in the 'Message Storage' column of the execution_table.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, at which step does the template read the message?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Check the 'Template Reads' column in the execution_table.
According to the variable tracker, what happens to messages in session after step 4?
AThey remain stored
BThey are cleared
CThey double in number
DThey move to cookies
💡 Hint
Look at the 'Final' column for 'messages in session' in variable_tracker.
If the view does not redirect but renders a template directly, when will the message be cleared?
AAfter template renders
BImmediately after adding
CBefore template renders
DNever cleared
💡 Hint
Refer to the flow where messages are cleared after being displayed in the template.
Concept Snapshot
Django messages framework lets views add flash messages stored in session.
Messages show once in the next template render and then clear automatically.
Use messages.success(), messages.error(), etc. to add messages.
Templates access messages via the 'messages' context variable.
Messages survive redirects and disappear after display.
Full Transcript
The Django messages framework allows a view to add temporary flash messages that inform users about actions like success or errors. When a view calls a function like messages.success(), the message is saved in the user's session. After the view redirects or renders a response, the template can read these messages from the session and display them to the user. Once displayed, the messages are cleared from the session so they do not appear again. This process ensures messages appear only once, providing clear feedback without clutter. The execution table shows each step: adding the message, redirecting, rendering the template, displaying the message, and clearing it. The variable tracker confirms the message's presence in the session until it is shown. This framework helps keep user feedback simple and effective.