Pesquisa de site

{{ form.as_table }} – Renderiza formulários Django como tabela


Na área de desenvolvimento web, Django emergiu como uma estrutura de internet Python famosa, de código aberto e de alto nível, que incentiva melhorias rápidas e um design fácil e pragmático. Django possui uma maneira robusta de lidar com dispositivos, que permite aos desenvolvedores criar, validar e processar documentos sem esforço. Um componente essencial da forma do Django para lidar com dispositivos é seu potencial para renderizar formulários como tabelas HTML.

Neste post, passaremos pelo procedimento de renderização de formulários do Django como tabelas, que inclui as bênçãos, como obtê-las e algumas práticas excepcionais a serem observadas. Ao final deste post, você terá informações sólidas sobre como agilizar seu método de desenvolvimento web por meio da renderização eficaz de formulários Django como tabelas.

Por que renderizar formulários Django como tabela?

Renderizar formulários Django como tabelas pode fornecer uma série de benefícios para desenvolvedores web. Algumas dessas vantagens incluem:

  • Layout estruturado: a exibição de fatores de forma em uma tabela fornece um layout simples e preparado, tornando mais fácil para os clientes compreenderem e interagirem com o formulário.

  • Layout responsivo: com o CSS adequado, as tabelas podem se adaptar facilmente a tamanhos de tela e dispositivos diferentes, garantindo que um usuário constante desfrute de alguns sistemas.

  • Capacidade de manutenção aprimorada: ao renderizar formulários como tabelas, os programadores podem reduzir a quantidade de código HTML e CSS de guia que desejam colocar por escrito, tornando menos difícil manter e atualizar formulários no final.

  • Acessibilidade: O uso de tabelas para renderizar formulários pode melhorar a acessibilidade para clientes com deficiência, pois os leitores de tela podem interpretar melhor a forma e a relação entre os fatores de forma.

Como renderizar formulários Django como tabela

Agora que entendemos os benefícios de renderizar formulários do Django como tabelas, vamos explorar as etapas envolvidas para conseguir isso.

Pacotes a serem instalados

Instale o Django: Abra seu terminal e digite o seguinte comando para instalar o Django

pip install django

Crie um novo projeto Django: Ainda em seu terminal, digite o seguinte comando para criar um novo projeto Django:

django−admin startproject myproject

Navegue até o diretório do seu projeto

cd myproject

Crie um novo aplicativo Django

python manage.py startapp myapp

Crie um novo arquivo forms.py no diretório Myapp

Para começar, precisamos fazer um formulário Django. Isso será feito caracterizando uma classe de formulário em seu arquivo forms.py, adquirindo de django.forms.ModelForm ou django.forms.Form.

  • Importe os módulos fundamentais: formulários do pacote Django e o modelo User do arquivo models.py do aplicativo atual.

  • Crie uma classe de formulário chamada UserForm que herda de forms.ModelForm.

  • Dentro da classe UserForm, crie uma classe Meta aninhada.

  • Defina o atributo model da classe Meta para o modelo User. Isto diz ao Django que o formulário será usado para criar ou editar instâncias de User.

  • Crie uma lista de nomes de campos dentro da qualidade de campo da classe Meta. Estes são os campos que serão incluídos no formulário.

from django import forms
from .models import User

class UserForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ['first_name', 'last_name', 'roll_no', 'password']

Atualize views.py no diretório Myapp

O código importa UserForm de formulários e o utiliza na função user_form_view, que renderiza o formulário em 'form.html'.

from django.shortcuts import render
from .forms import UserForm

def user_form_view(request):
    form = UserForm()
    return render(request, 'form.html', {'form': form})

Crie um novo diretório templates no diretório myapp e crie um novo arquivo form.html no diretório templates

A seguir, utilizaremos o método interno do Django para renderizar formulários como tabelas – o método as_table. No seu modelo, você chamará o método as_table na ocorrência do formulário como mostrado abaixo:

  • Faça um componente de quadro HTML com a propriedade method="POST" para indicar que o quadro utilizará a estratégia POST ao enviar dados.

  • Use a tag de formato {% csrf_token %} para incluir um token CSRF no formulário, o que permite proteção contra ataques de imitação de solicitação entre sites.

  • Crie um elemento de tabela HTML.

  • Dentro do elemento table, use a tag de modelo {{ form.as_table }} para renderizar o formulário Django como uma tabela. Isso produzirá o HTML vital para cada campo do formulário, com cada campo mostrado em sua própria linha da tabela.

  • Adicione um componente de entrada HTML com o atributo type="submit" para formar um botão de envio para o formulário.

<form method="POST">
  {% csrf_token %}
  <table class="form-table" style="width: 100%;">
    {{ form.as_table }}
  </table>
  <input type="submit" value="Submit">
</form>

Atualize urls.py no diretório myapp

Este trecho de código está criando um roteamento de URL para o aplicativo Django myapp. Ele define um caminho para a visualização do formulário do usuário na URL base.

from django.urls import path
from .views import user_form_view

urlpatterns = [
    path('', user_form_view, name='user_form'),
]

Atualize urls.py no diretório Myproject

Este código está definindo as principais configurações de URL para o projeto Django myproject. Inclui as configurações de URL do site administrativo e do aplicativo myapp.

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),
]

Execute o servidor

python manage.py runserver

Agora, se você navegar para http://127.0.0.1:8000/ em seu navegador, deverá ver seu formulário. Esta é a “saída” da sua aplicação Django.

Saída

Nós conseguimos! Nosso formulário Django foi renderizado com sucesso como uma tabela. Aqui está o formulário final de registro do usuário, exibindo elegantemente quatro campos.

Uma aplicação web no Django consiste em múltiplas partes interconectadas e não é possível condensá-la em um único script Python independente que você possa executar para obter uma saída no console.

Melhores práticas para renderizar formulários Django como tabela

Para garantir a melhor experiência de usuário e facilidade de manutenção possíveis, siga estas práticas recomendadas ao renderizar formulários Django como tabelas:

  • Utilize marcação semântica: Utilize os componentes corretos da tabela, como thead, tbody e tfoot, para fornecer melhor configuração e acessibilidade ao progresso.

  • Adicione nomes e espaços reservados: sem qualquer dúvida, incorpore nomes para cada campo do formulário, bem como espaços reservados, para direcionar os usuários durante o processo de preenchimento do formulário.

  • Aplique um plano responsivo: garanta que sua tabela seja responsiva utilizando consultas de mídia CSS ou uma estrutura CSS, como Bootstrap, que fornece classes de tabela responsivas.

  • Implemente proteção CSRF: Proteja seus formulários contra ataques de falsificação de solicitação entre sites (CSRF), incluindo a tag de modelo {% csrf_token %} em seu elemento de formulário. O Django irá lidar automaticamente com a proteção CSRF quando esta tag for usada.

Conclusão

Renderizar formulários Django como tabelas oferece vários benefícios, incluindo formato organizado, design responsivo, capacidade de manutenção progressiva e disponibilidade aprimorada. Seguindo os passos descritos neste artigo e seguindo as melhores práticas, você estará bem equipado para criar aplicações web simplificadas, fáceis de usar e viáveis utilizando Django.

À medida que você desenvolve suas habilidades Django, lembre-se de se manter atualizado com as melhores práticas, instrumentos e procedimentos mais recentes para garantir que seus projetos sejam continuamente eficazes, seguros e fáceis de usar.

Artigos relacionados: