13.8. Criação de um projeto Django: Formulários e validação

Página 66

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.

Ahora responde el ejercicio sobre el contenido:

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

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Siguiente página del libro electrónico gratuito:

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

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.