python / intermediate
Snippet
Django Messages Framework for User Feedback
Django's messages framework enables flash messages for user feedback. Messages are stored in sessions and displayed once after redirection. Different message levels (success, error, warning, info) allow CSS styling differentiation. Requires MessageMiddleware and session backend.
snippet.py
python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# views.pyfrom django.contrib import messagesfrom django.shortcuts import redirectdef contact_form(request):if request.method == 'POST':form = ContactForm(request.POST)if form.is_valid():form.send_email()messages.success(request, 'Message sent successfully!')return redirect('contact_success')else:messages.error(request, 'Please fix the errors below.')return render(request, 'contact.html', {'form': form})# template (base.html){% if messages %}<ul class="messages">{% for message in messages %}<li class="{{ message.tags }}">{{ message }}</li>{% endfor %}</ul>{% endif %}# settings.py (add middleware)MIDDLEWARE = [...'django.contrib.messages.middleware.MessageMiddleware',]SESSIONENGINE = 'django.contrib.sessions.backends.db'
django
Breakdown
1
messages.success(request, 'Message sent successfully!')
Adds success-level message that persists until displayed
2
messages.error(request, 'Please fix the errors below.')
Error message displayed inline without redirect for form validation
3
{{ message.tags }}
Outputs CSS classes like 'success', 'error', 'warning' for styling
4
MessageMiddleware
Middleware required to process messages on each request/response cycle
5
SESSIONENGINE
Messages require a session backend; db backend is default