O Django é um framework de desenvolvimento web de alto nível escrito em Python que promove o desenvolvimento rápido, o design limpo e a abordagem pragmática. Um dos aspectos mais importantes do desenvolvimento web é a manipulação de formulários. Nesse contexto, vamos nos concentrar na seção 19.4: Formulários em Django.

Os formulários são uma parte essencial de qualquer aplicativo web. Eles são a interface principal para a entrada do usuário, permitindo que os usuários insiram dados que o aplicativo pode então usar para realizar uma variedade de tarefas. No Django, os formulários são tratados por uma biblioteca de formulários integrada.

Criação de um aplicativo Django

Para começar, precisamos criar um novo aplicativo Django. Suponha que o nome do nosso aplicativo seja 'myapp'. Para criar este aplicativo, usamos o comando:


python manage.py startapp myapp

Em seguida, precisamos adicionar 'myapp' à lista de INSTALLED_APPS em nosso arquivo settings.py para que o Django saiba que ele existe.

Formulários em Django

O Django fornece várias maneiras de criar formulários. A maneira mais comum é usar a classe Form. Uma classe Form é simplesmente uma maneira de definir campos de formulário. Cada campo de formulário tem um tipo de campo específico - CharField para campos de entrada de texto, DateTimeField para entradas de data e hora, etc.

Por exemplo, podemos criar um formulário simples para um sistema de comentários da seguinte maneira:


from django import forms

class CommentForm(forms.Form):
    name = forms.CharField(max_length=100)
    comment = forms.CharField(widget=forms.Textarea)

Este é um formulário muito básico com dois campos - um campo de entrada de texto para o nome e uma área de texto para o comentário. O Django automaticamente lida com a renderização desses campos como HTML, a validação da entrada do usuário e a conversão da entrada do usuário em tipos de dados Python.

Usando Formulários em Views

Depois de definir um formulário, podemos usá-lo em uma view. Uma view é simplesmente uma função Python que recebe uma solicitação da web e retorna uma resposta. No Django, podemos usar a função render() para renderizar um template HTML com um contexto dado. O contexto é um dicionário que mapeia nomes de variáveis para valores de Python.

Por exemplo, aqui está uma view que renderiza nosso formulário CommentForm:


from django.shortcuts import render
from .forms import CommentForm

def comment(request):
    form = CommentForm()
    return render(request, 'comment.html', {'form': form})

Esta view simplesmente cria uma nova instância do nosso CommentForm e a passa para o template 'comment.html' sob o nome 'form'.

Manipulação de Submissões de Formulários

Quando um usuário envia um formulário, precisamos processar os dados do formulário. O Django facilita isso com o método is_valid(). Este método verifica se os dados do formulário são válidos - se todos os campos foram preenchidos corretamente e se os dados passam por todas as validações definidas.

Se o formulário for válido, podemos acessar os dados do formulário limpos através do atributo cleaned_data, que é um dicionário que mapeia nomes de campos para valores de campos limpos.

Por exemplo, aqui está uma view que processa a submissão do nosso CommentForm:


from django.shortcuts import render, redirect
from .forms import CommentForm

def comment(request):
    if request.method == 'POST':
        form = CommentForm(request.POST)
        if form.is_valid():
            # process the data in form.cleaned_data
            # ...
            return redirect('success')
    else:
        form = CommentForm()
    return render(request, 'comment.html', {'form': form})

Esta view primeiro verifica se a solicitação é um POST. Se for, ele cria uma nova instância do CommentForm a partir dos dados POST, verifica se o formulário é válido e, em seguida, processa os dados. Se a solicitação não for um POST, a view simplesmente renderiza o formulário como antes.

Conclusão

Os formulários são uma parte essencial do desenvolvimento web e o Django fornece uma maneira poderosa e flexível de trabalhar com eles. Com a biblioteca de formulários do Django, podemos definir formulários de maneira declarativa, processar submissões de formulários com facilidade e reutilizar formulários comuns em todo o nosso aplicativo.

Agora responda o exercício sobre o conteúdo:

Qual é a função do método is_valid() no Django?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Formulários em Django: Modelos em Django

Próxima página do Ebook Gratuito:

118Formulários em Django: Modelos em Django

4 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto