Processando Requisições - Django
O processamento de requisições é o elemento central de qualquer aplicação web. No Django, ele é realizado por meio das views. As views são funções que recebem os dados das requisições, processam essas informações e retornam uma resposta ao cliente.
Uma view no Django recebe um objeto HttpRequest
django.http
HttpResponse
Por padrão, as views são organizadas no arquivo views.py
Estrutura Básica de uma View
Considere um projeto Django padrão onde uma aplicação foi criada, conforme descrito no tema anterior:
Inicialmente, o arquivo views.py
from django.shortcuts import render
# Create your views here.
Este código inicial ainda não processa requisições. Ele apenas importa a função render
Uma maneira simples de gerar uma resposta é utilizando a classe HttpResponse
views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Página Inicial")
def about(request):
return HttpResponse("Sobre o site")
def contact(request):
return HttpResponse("Contato")
No exemplo acima, foram definidas três funções: index
about
contact
request
view
HttpResponse
Configurando as Rotas
Para que as funções definidas no views.py
urls.py
A configuração do arquivo urls.py
from django.urls import path
from hello import views
urlpatterns = [
path('', views.index),
path('about', views.about),
path('contact', views.contact),
]
Aqui, a variável urlpatterns
A URL raiz (
) é associada à função''
.index
A URL
é associada à função/about
.about
A URL
é associada à função/contact
.contact
Quando o servidor é iniciado, acessar essas rotas no navegador chamará as funções correspondentes e enviará as respostas definidas no HttpResponse
Respostas em HTML
Além de texto simples, as respostas também podem incluir código HTML, que será interpretado e renderizado pelo navegador. A seguir, o arquivo views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("<h1>Página Inicial</h1>")
def about(request):
return HttpResponse("<h1>Sobre o site</h1>")
def contact(request):
return HttpResponse("<h1>Contato</h1>")
Neste exemplo, o conteúdo retornado pelas funções é um código HTML simples, que será interpretado pelo navegador e exibido de acordo com as tags HTML utilizadas.