DEV Community

Francisco Júnior
Francisco Júnior

Posted on • Edited on

3

Guia Completo do Módulo forms no Django

O módulo forms é uma parte essencial do framework Django que simplifica a criação e manipulação de formulários em aplicativos da web. Neste guia completo, exploraremos o módulo forms do Django, explicando o que é, como funciona e fornecendo exemplos práticos de como criar e utilizar formulários em seus projetos.

O que é o Módulo forms no Django?

O módulo forms no Django é uma parte do framework que permite a criação e validação de formulários em aplicativos da web. Com o forms, você pode definir campos de formulário, regras de validação e renderização de formulários em templates de maneira simples e eficiente.

Os formulários são uma parte crítica de muitos aplicativos web, permitindo a entrada de dados do usuário e a interação com o aplicativo. O módulo forms do Django simplifica a criação e manipulação de formulários, economizando tempo e minimizando erros comuns.

Criando um Formulário

Para criar um formulário em um projeto Django, siga estas etapas:

1. Defina uma Classe de Formulário

Crie uma classe de formulário em um arquivo Python. Esta classe é uma subclasse de forms.Form e define os campos do formulário e as regras de validação.

# forms.py

from django import forms

class MeuFormulario(forms.Form):
    campo_texto = forms.CharField(max_length=100)
    campo_numero = forms.IntegerField()
    campo_email = forms.EmailField()
Enter fullscreen mode Exit fullscreen mode

2. Renderize o Formulário em um Template

Em seu template HTML, você pode renderizar o formulário usando a tag {% formlib %} do Django. Isso gera o código HTML do formulário automaticamente.

<form method="post" action="">
  {% for field in formulario %}
    <div class="campo-formulario">
      {{ field.label_tag }}
      {{ field }}
    </div>
  {% endfor %}
  <button type="submit">Enviar</button>
</form>
Enter fullscreen mode Exit fullscreen mode

3. Processar Dados do Formulário

Para processar os dados enviados pelo formulário, você pode usar a classe POST do Django. Ela valida os dados e facilita a manipulação de erros de validação.

# views.py

from django.shortcuts import render
from .forms import MeuFormulario

def meu_formulario(request):
    if request.method == 'POST':
        formulario = MeuFormulario(request.POST)
        if formulario.is_valid():
            # Processar os dados do formulário
            campo_texto = formulario.cleaned_data['campo_texto']
            campo_numero = formulario.cleaned_data['campo_numero']
            campo_email = formulario.cleaned_data['campo_email']
            # Realizar ações com os dados
    else:
        formulario = MeuFormulario()
    return render(request, 'meuapp/meu_template.html', {'formulario': formulario})
Enter fullscreen mode Exit fullscreen mode

Campos de Formulário Comuns

O módulo forms do Django oferece vários tipos de campos de formulário comuns para atender a diferentes necessidades:

  • CharField: Campo de texto.
  • IntegerField: Campo de número inteiro.
  • EmailField: Campo de e-mail.
  • BooleanField: Campo booleano (verdadeiro/falso).
  • DateField e TimeField: Campos de data e hora.
  • ChoiceField e MultipleChoiceField: Campos de seleção única e múltipla.
  • FileField: Campo de upload de arquivo.
  • HiddenInput: Campo oculto.
  • URLField: Campo de URL.
  • PasswordField: Campo de senha.

Personalização de Campos e Validação

Você pode personalizar campos de formulário e adicionar regras de validação usando parâmetros e métodos específicos. Aqui estão alguns exemplos:

Personalização de Rótulos

Você pode personalizar os rótulos dos campos usando o parâmetro label:

campo_texto = forms.CharField(max_length=100, label='Nome Completo')
Enter fullscreen mode Exit fullscreen mode

Validação Personalizada

Você pode adicionar regras de validação personalizadas criando um método clean_<campo> em seu formulário:

def clean_campo_numero(self):
    campo_numero = self.cleaned_data['campo_numero']
    if campo_numero < 0:
        raise forms.ValidationError('O número deve ser positivo.')
    return campo_numero
Enter fullscreen mode Exit fullscreen mode

Formulários de Modelo

O Django também oferece formulários de modelo para simplificar a criação de formulários com base em modelos de banco de dados. Esses formulários podem ser usados para criar, atualizar e excluir registros de banco de dados.

Conclusão

O módulo forms do Django é uma parte fundamental para coletar e validar dados do usuário de forma eficaz. Com o forms, você pode criar formulários personalizados, adicionar validações, personalizar widgets e processar dados de forma eficiente. Ao compreender e utilizar os recursos discutidos neste guia,

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay