Renderizar formulários HTML (GET e POST) em Django
Django é freqüentemente chamado de “Batteries included Framework” porque tem uma configuração padrão para tudo e tem recursos que podem ajudar qualquer pessoa a desenvolver um site rapidamente. Falando sobre formulários, em HTML, um formulário é uma coleção de elementos dentro de <form>… </form> que permite a um visitante fazer coisas como inserir texto, selecionar opções, manipular objetos ou controles e assim por diante, e então enviar isso informações de volta ao servidor. Basicamente, é a coleta de dados para processamento para qualquer finalidade, incluindo salvá-los no banco de dados ou buscar dados do banco de dados. Django suporta todos os tipos de formulários HTML e renderiza dados deles para uma visão para processamento usando várias operações lógicas.
Para saber mais sobre formulários HTML, visite HTML | formulário Tag .
Django também fornece um recurso integrado de Django Forms, assim como Django Models . Pode-se criar formulários no Django e usá-los para buscar dados do usuário de uma maneira conveniente.
Para começar com os formulários, é necessário estar familiarizado com as solicitações GET e POST nos formulários.
- GET : GET, por outro lado, agrupa os dados enviados em uma string e usa isso para compor uma URL. O URL contém o endereço para onde os dados devem ser enviados, bem como as chaves e valores dos dados. Você pode ver isso em ação se fizer uma pesquisa na documentação do Django, que produzirá uma URL no formato https://docs.djangoproject.com/search/?q=forms&release=1 .
- POST : qualquer solicitação que possa ser usada para alterar o estado do sistema - por exemplo, uma solicitação que faça alterações no banco de dados - deve usar POST.
Renderizar formulários HTML na explicação do Django
Ilustração de Django Forms usando um exemplo. Considere um projeto chamado geeksforgeeks com um aplicativo chamado geeks.
Consulte os artigos a seguir para verificar como criar um projeto e um aplicativo no Django.
Vamos criar um formulário HTML simples para mostrar como você pode inserir os dados de um usuário e usá-los em sua visualização. Insira o seguinte código em geeks> templates> home.html
<
form
action
=
""
method
=
"get"
>
<
label
for
=
"your_name"
>Your name: </
label
>
<
input
id
=
"your_name"
type
=
"text"
name
=
"your_name"
>
<
input
type
=
"submit"
value
=
"OK"
>
</
form
>
Agora, para renderizá-lo em nossa visualização, precisamos modificar urls.py para o aplicativo geeks.
Insira o código a seguir em geeksforgeeks> urls.py
from
django.urls
import
path
from
.views
import
geeks_view
urlpatterns
=
[
path('', home_view ),
]
Agora vamos para nossa home_view e começar a verificar como vamos obter os dados. Dados inteiros de um formulário HTML no Django são transferidos como um objeto JSON chamado de solicitação. Vamos criar uma visão primeiro e depois tentaremos todos os métodos para buscar dados do formulário.
from
django.shortcuts
import
render
def
home_view(request):
return
render(request,
"home.html"
)
Como temos tudo configurado, vamos executar o servidor Python manage.py run e verificar se o formulário está lá na página inicial.
Por padrão, todo formulário já escrito em HTML faz uma solicitação GET para o back end de um aplicativo, uma solicitação GET normalmente funciona usando consultas na URL. Vamos demonstrar usando o formulário acima, Preencha o formulário com seu nome e vamos ver o que acontece.
O URL acima é anexado com o atributo name da tag de entrada e o nome inserido no formulário. É assim que a solicitação GET funciona, qualquer que seja o número de entradas que seriam anexadas à URL para enviar os dados ao back-end de um aplicativo. Vamos verificar como finalmente obter esses dados em nossa visualização para que a lógica possa ser aplicada com base na entrada.
Em views.py
from
django.shortcuts
import
render
def
home_view(request):
(request.GET)
return
render(request,
"home.html"
)
Agora, quando preenchemos o formulário, podemos ver a saída no terminal como abaixo
request.GET retorna um dicionário de consulta que pode ser acessado como qualquer outro dicionário Python e finalmente usar seus dados para aplicar alguma lógica.
Da mesma forma, se o método de transmissão for POST, você pode usar request.POST como dicionário de consulta para renderizar os dados do formulário em visualizações.
Em home.html
<
form
action
=
""
method
=
"POST"
>
{% csrf_token %}
<
label
for
=
"your_name"
>Your name: </
label
>
<
input
id
=
"your_name"
type
=
"text"
name
=
"your_name"
>
<
input
type
=
"submit"
value
=
"OK"
>
</
form
>
Observe que sempre que criamos uma solicitação de formulário, Django requer que você adicione {% csrf_token%} no formulário para fins de segurança.
Agora, em views.py vamos verificar o que a solicitação.POST tem.
from
django.shortcuts
import
render
def
home_view(request):
(request.POST)
return
render(request,
"home.html"
)
Agora, quando enviamos o formulário, ele mostra os dados abaixo.
Desta forma, pode-se usar esses dados para consultar o banco de dados ou para processar usando alguma operação lógica e passar o uso do dicionário de contexto para o modelo.
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva