Mensagens Flash do Django

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 messagesLinguagem 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 messagesLinguagem 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.htmlmodelo 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:

mensagens flash do Django - formulário inválido

… você verá uma mensagem de erro:

mensagens flash do Django - mensagem de erro

Resumo

  • Use messages do django.contrib para criar e exibir mensagens.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *