Resumo: neste tutorial, você aprenderá como usar mensagens flash do Django, incluindo a criação de mensagens flash e sua exibição.
Este tutorial começa onde a criação do tutorial do formulário Django parou.
Introdução às mensagens Flash do Django
Uma mensagem flash é uma mensagem de notificação única. Para exibir a mensagem flash no Django, você usa as mensagens do módulo django.contrib
:
from django.contrib import messages
Linguagem de código: Python ( python )
As mensagens possuem algumas funções úteis para exibir mensagens informativas, de aviso e de erro:
messages.debug
– exibe uma mensagem de depuração.messages.info
– exibe uma mensagem informativa.messages.success
– exibe uma mensagem de sucesso.messages.warning
– exibe uma mensagem de aviso.messages.error
– exibe uma mensagem de erro.
Todas essas funções aceitam um objeto HttpRequest
como primeiro argumento e uma mensagem como segundo argumento.
Exemplo de mensagem Flash no Django
Implementaremos mensagens flash para o aplicativo blog
no formato django_project
.
Criando mensagens flash do Django
Modifique a função create_post()
adicionando as mensagens flash:
from django.shortcuts import render,redirect
from django.contrib import messages
from .models import Post
from .forms import PostForm
def create_post(request):
if request.method == 'GET':
context = {'form': PostForm()}
return render(request,'blog/post_form.html',context)
elif request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
form.save()
messages.success(request, 'The post has been created successfully.')
return redirect('posts')
else:
messages.error(request, 'Please correct the following errors:')
return render(request,'blog/post_form.html',{'form':form})
Linguagem de código: Python ( python )
Como funciona.
Primeiro, importe mensagens do django.contrib
:
from django.contrib import messages
Linguagem de código: Python ( python )
Segundo, crie uma mensagem de sucesso após salvar os valores do formulário no banco de dados chamando a função success()
:
messages.success(request, 'The post has been created successfully.')
Linguagem de código: Python ( python )
Terceiro, crie uma mensagem de erro se o formulário não for válido chamando a função error()
:
messages.error(request, 'Please correct the following errors:')
Linguagem de código: Python ( python )
Exibindo mensagens flash
Modifique o base.html
modelo para exibir mensagens flash:
{%load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="{% static 'css/style.css' %}" />
<script src="{% static 'js/app.js' %}" defer></script>
<title>My Site</title>
</head>
<body>
{% if messages %}
<div class="messages">
{% for message in messages %}
<div class="alert {% if message.tags %}alert-{{ message.tags }}"{% endif %}>
{{ message }}
</div>
{% endfor %}
</div>
{% endif %}
{%block content%}
{%endblock content%}
</body>
</html>
Linguagem de código: HTML, XML ( xml )
Se você navegar até o formulário http://127.0.0.1/post/create
, insira os valores e clique no botão Salvar:
… você verá uma mensagem de sucesso:
Se você atualizar a página, a mensagem desaparecerá porque será exibida apenas uma vez.
Quando você ignora a inserção de um valor para o campo title
e clica no botão Salvar:
… você verá uma mensagem de erro:
Resumo
- Use
messages
dodjango.contrib
para criar e exibir mensagens.