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.
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.