Um dos principais recursos do Django é a capacidade de criar formulários dinâmicos e eficientes para coletar e processar dados do usuário. Nesta seção do nosso curso de criação de sistemas com Python e Django, vamos aprender a criar um projeto Django que envolve a criação de formulários e a validação de dados.

13.8.1. Criando seu primeiro formulário Django

Para começar, vamos criar um novo arquivo em nosso aplicativo Django chamado 'forms.py'. Neste arquivo, vamos definir nosso primeiro formulário Django. O Django fornece uma classe 'forms.Form' que podemos usar como base para nossos formulários. Aqui está um exemplo de como podemos definir um formulário simples:

from django import forms

class ContactForm(forms.Form):
    name = forms.CharField(max_length=100)
    email = forms.EmailField()
    message = forms.CharField(widget=forms.Textarea)

Neste exemplo, definimos um formulário de contato com três campos: nome, e-mail e mensagem. Cada campo é definido usando uma classe de campo específica do Django, como 'forms.CharField' ou 'forms.EmailField'.

13.8.2. Renderizando seu formulário no template

Depois de definir seu formulário, você precisará renderizá-lo em um template para que os usuários possam interagir com ele. Isso pode ser feito passando uma instância do seu formulário para o contexto do template e, em seguida, usando a tag de template 'form' para renderizar o formulário. Aqui está um exemplo de como você pode fazer isso:

def contact(request):
    form = ContactForm()
    return render(request, 'contact.html', {'form': form})

E no template 'contact.html', você pode renderizar o formulário assim:

{% csrf_token %} {{ form.as_p }}

13.8.3. Processando dados de formulário

Quando um usuário envia um formulário, os dados do formulário são enviados para o servidor como uma solicitação POST. Você pode acessar esses dados no Django usando o atributo 'request.POST'. Aqui está um exemplo de como você pode processar os dados do formulário em sua view:

def contact(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            email = form.cleaned_data['email']
            message = form.cleaned_data['message']
            # Processar os dados do formulário...
    else:
        form = ContactForm()
    return render(request, 'contact.html', {'form': form})

13.8.4. Validando dados de formulário

Uma das principais vantagens de usar formulários Django é que eles podem lidar com a validação de dados para você. Quando você chama o método 'is_valid()' em um formulário, o Django verifica todos os campos do formulário para garantir que os dados enviados são válidos. Se algum dos campos não for válido, o Django adicionará um erro ao formulário que você pode exibir em seu template.

Além das verificações de validação padrão fornecidas pelo Django, você também pode adicionar suas próprias verificações de validação personalizadas. Para fazer isso, você pode adicionar um método ao seu formulário que começa com 'clean_' seguido pelo nome do campo que você deseja validar. Aqui está um exemplo:

class ContactForm(forms.Form):
    name = forms.CharField(max_length=100)
    email = forms.EmailField()
    message = forms.CharField(widget=forms.Textarea)

    def clean_email(self):
        email = self.cleaned_data.get('email')
        if "hotmail.com" in email:
            raise forms.ValidationError("Por favor, use um endereço de e-mail diferente.")
        return email

Neste exemplo, adicionamos uma verificação de validação personalizada ao campo de e-mail para garantir que o usuário não esteja usando um endereço de e-mail do Hotmail.

Em resumo, a criação de formulários e a validação de dados são partes essenciais de qualquer aplicação web. Felizmente, o Django facilita muito esse processo com seus poderosos recursos de formulário.

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

Qual é um dos principais recursos do Django mencionados no texto?

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

Você errou! Tente novamente.

Imagem do artigo Criação de um projeto Django: Autenticação de usuários

Próxima página do Ebook Gratuito:

67Criação de um projeto Django: Autenticação de usuários

6 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