Leitores como você ajudam a apoiar o MUO. Quando você faz uma compra usando links em nosso site, podemos ganhar uma comissão de afiliado. Consulte Mais informação.

A melhor maneira de dominar o Django é usá-lo para desenvolver aplicativos full-stack. Você encontrará muitos recursos fascinantes ao trabalhar com a estrutura. Uma delas é como renderizar formulários em templates usando crispy forms.

Usar django-crispy-forms é uma das muitas maneiras de renderizar formulários no Django. A dependência permite criar formulários em modelos sem escrever código HTML. Você pode criar facilmente layouts reutilizáveis ​​sem o incômodo de escrever código de formulário.

Você pode aprender mais instalando a biblioteca, configurando-a e usando-a para criar um formulário de registro.

Como funciona o django-crispy-forms

O biblioteca django-crispy-forms vem com código HTML embutido que você pode personalizar de acordo com suas necessidades. Inclui um filtro chamado | crocante que renderiza formulários baseados em div no modelo.

instagram viewer

O {% crocantes %} tags renderizarão formulários de acordo com uma configuração específica. Django-crispy-forms funciona bem com outras dependências de modelo como Bootstrap e Tailwind CSS.

Vamos ver como isso funciona em um modelo.

Instalar Crispy Forms

Começar por criando um projeto Django e aplicativo. Em seguida, instale a versão mais recente do django-crispy-forms usando o Pipenv com o seguinte comando:

pipenv instalar django-crispy-forms

Uma instalação bem-sucedida se parecerá com a imagem abaixo:

Configure django-crispy-forms nas configurações

Após a instalação, você deve registrar crispy forms como dependência nas configurações do projeto. Ao registrá-lo, a biblioteca crispy forms estará disponível para todos os apps do projeto.

No projeto settings.py arquivo, adicione a string 'crispy_forms':

INSTALADO_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'meuaplicativo',
'crispy_forms',
]

Criar um formulário

Você precisa sincronizar seu formulário de registro com o formulário de criação de usuário integrado do Django para ajudar na autenticação.

o embutido Autenticação do usuário do Django O sistema lida com requisitos comuns, como validação de senhas e emissão de permissões.

O sistema também lida com a validação do formulário para você. Assim, você pode criar formulários sem o incômodo de lidar com a validação por conta própria. Se você já fez a validação de formulário em outras estruturas, saberá como isso pode ser complicado. Não com Django.

O módulo de autenticação possui um Do utilizador modelo ou objeto. O Do utilizador objeto é o principal componente do sistema de autenticação do usuário. Ele lida com permissões, autenticando perfis de usuários registrados, controle de acesso e muito mais.

O UserCreationForm usa o embutido Do utilizador objeto de registro de novos usuários. Ele herda da classe ModelForm.

Primeiro, importe formulários do módulo de formulário do Django. Em seguida, importe o UserCreationForm de django.contrib.auth.forms. Além disso, importe o embutido Do utilizador modelo de django.contrib.auth.models. Em seguida, importe as entradas de campo do Django ModelForm.

de django importar formulários
dedjango.contrib.auth.formuláriosimportarUserCreationForm
dedjango.contrib.auth.modelosimportarDo utilizador
de django.forms importar ModelForm, TextInput, EmailInput, ImageField, Textarea

Em seguida, crie um objeto de registro chamado RegisterUserForm. leva o UserCreationForm como argumento. Adicione o Do utilizador campos de objeto, como autenticação de e-mail, nome de usuário e duas senhas.

aulaRegisterUserForm(Formulário de Criação de Usuário):
e-mail = formulários. EmailField (max_length=254, help_text='Obrigatório. Digite um endereço de e-mail válido.')
aulameta:
modelo = usuário
campos = ('nome de usuário', 'e-mail', 'senha1', 'senha2')

Esses campos são os atributos principais de um usuário no formulário de registro. São entradas obrigatórias que os usuários devem preencher para que o sistema as autentique.

Criar uma Função de Visualização

Em seguida, você criará uma função de visualização para o formulário de registro. Primeiro, importe a função render, bem como o RegisterUserForm de forms.py. Em seguida, importe o Do utilizador modelo de django.contrib.auth.models.

A função de exibição chamada register leva o RegisterUserForm. Ele irá renderizá-lo no register.html modelo.

de django.shortcuts importar renderizar,
de django.http importar HttpResponse, Http404
de .formulários importar RegisterUserForm
dedjango.contrib.auth.modelosimportarDo utilizador
defregistro(solicitar):
form=RegisterUserForm
contexto={'forma':forma}
retornar renderização (solicitação,'register.html',contexto)

Criar caminho de URL

Criar um caminho de URL para o register.html modelo. Essa URL é o caminho para a função de exibição que você acabou de criar. Dê-lhe o nome registro, para que você possa usar o nome para chamá-lo em um modelo.

de django.urls importar caminho
de. importar Visualizações
urlpatterns=[
caminho ('registro', views.register, nome='registro'),
]

Carregar em um modelo

Agora que você tem a visualização e o caminho da URL, pode criar o register.html modelo na pasta do aplicativo. Você usará django-crispy-forms para renderizar o RegisterUserForm.

No register.html modelo, estenda o base.html. O base.html contém o Links de inicialização você usará para estilizar o formulário de registro. Em seguida, carregue o django-crispy-forms com o register.html usando tags de modelo.

{% estende 'base.html' %}
{% load crispy_forms_tags %}
{% bloquear conteúdo %}
<classe div ="recipiente" estilo="">
<classe div ="linha">
<classe div ="col-md-2"></div>
<classe div ="col-md-8">
<classe div ="cartão" estilo="cor preta;">
<classe div ="corpo do cartão">
<classe h5="cartão-título"><a>Registre-se para ser um membro</a><estilo span ="flutuar: certo">Você é um membro? <a href="#" turma="texto-primário">Conecte-se agora</a></span></h5>
<classe div ="cartão-texto">
<ação do formulário="" método="PUBLICAR" novalidar>
{% csrf_token %}
{{ forma|crocante}}
<tipo de botão ="enviar" turma="btn btn-primário btn-sm"> Registro</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% bloco final %}

O formulário inclui o csrf_token, que protege o processo de registro de hackers. Renderize o formulário com o mesmo nome de variável da função view. Em seguida, adicione o |crocantes filtrar para o Django {{forma}} variável. Isso tornará o formulário como um formulário crocante.

Execute o servidor. Em seguida, verifique o aplicativo em um navegador em http://127.0.0.1:8000/register. Você deve ver o formulário exibido conforme ilustrado abaixo:

Você rendeu um formulário de registro usando formulários crocantes! Observe que o Django adicionou validação automaticamente ao formulário. Isso inclui requisitos como permissões de nome de usuário e senha.

Para ter um sistema de inscrição completo, adicione a lógica de autenticação à função de exibição. Você também pode adicionar uma página de login para conectar usuários registrados. Os usuários devem atender aos requisitos de autenticação para entrar no aplicativo.

A biblioteca django-crispy-forms permite renderizar formulários validados de forma rápida e fácil. A validação de dados garante que você tenha dados precisos de seus usuários.

Os dados são úteis na comunicação com os usuários e na análise das métricas de desempenho.

Por que usar django-crispy-forms?

Usar a biblioteca crispy forms para renderizar formulários no Django é um ótimo exemplo de como aplicar o princípio DRY. django-crispy-forms cria componentes reutilizáveis ​​que você pode renderizar em templates.

Eles vêm com código HTML integrado. O código evitará o incômodo de estruturar e validar formulários. Os formulários Crispy fornecem uma tag e um filtro que renderiza os formulários em um formato div. Eles também fornecem a capacidade de configurar e controlar o HTML renderizado.

django-crispy-forms funciona bem com o sistema de autenticação Django. Você pode criar um sistema de autenticação para verificar seus usuários sem escrever muito código.