13.8. Criação de um projeto Django: Formulários e validação
Página 66 | Ouça em áudio
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:
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.
Próxima página do Ebook Gratuito: