Pular para o conteúdo principal

Questão de Programação — Frameworks em Programação — CESPE / CEBRASPE 2024

ProgramaçãoFrameworks em Programação
Código
ce191222
Banca
CESPE / CEBRASPE
Órgão
CAGEPA - PB
Ano
2024
Nível
Superior
No framework Django, uma função Python que recebe uma requisição web e retorna um objeto Imagem associada para resolução da questão contendo o conteúdo da página solicitada ou uma exceção como Imagem associada para resolução da questão é denominada
  1. AImagem associada para resolução da questão
  2. BImagem associada para resolução da questão
  3. CImagem associada para resolução da questão
  4. DImagem associada para resolução da questão
  5. EImagem associada para resolução da questão
Revelar gabarito e comentário

GabaritoE — [imagem]

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Django: views e o ciclo requisição-resposta

Gabarito: letra E. No framework Django, a função Python que recebe uma requisição web e retorna um objeto HttpResponse contendo o conteúdo da página solicitada, ou uma exceção como Http404, é denominada view. A view é o coração do padrão MVT (Model-View-Template) do Django, responsável por processar a requisição, executar a lógica de negócio e devolver a resposta HTTP ao cliente.

O Django adota o padrão arquitetural MVT (Model-View-Template), uma variação do MVC (Model-View-Controller). Nesse padrão, a view exerce o papel que no MVC tradicional é dividido entre o controller e a view: ela recebe a requisição HTTP (um objeto HttpRequest), contém a lógica de negócio (como consultas ao banco de dados via ORM), e retorna uma resposta HTTP (normalmente um objeto HttpResponse, que pode ser gerado a partir de um template HTML).

A definição clássica de uma view no Django é exatamente a descrita no enunciado: uma função (ou classe, no caso de class-based views) que recebe um objeto HttpRequest como primeiro parâmetro e retorna um objeto HttpResponse. Quando algo dá errado — por exemplo, um registro não é encontrado no banco — a view pode lançar exceções específicas do Django, como Http404, que o framework converte automaticamente em uma resposta HTTP 404 (Not Found). Outras exceções comuns incluem PermissionDenied (HTTP 403) e HttpResponseRedirect (que, apesar do nome, é uma subclasse de HttpResponse usada para redirecionamentos).

Na prática, uma view simples pode ser definida assim:

from django.http import HttpResponse

def minha_view(request):
    return HttpResponse("Olá, mundo!")

Essa função recebe o objeto request e retorna um HttpResponse. Se quiséssemos retornar um erro 404, poderíamos usar:

from django.http import Http404

def minha_view(request):
    raise Http404("Página não encontrada")

O Django também oferece as class-based views (views baseadas em classes), que são uma alternativa mais estruturada e reutilizável às views baseadas em funções. Elas seguem o mesmo princípio: recebem a requisição e retornam uma resposta, mas organizam a lógica em métodos como get(), post(), etc.

A distinção que importa aqui é entre view e os demais componentes do Django: o template é responsável apenas pela apresentação (HTML), o model representa os dados, e a URLconf faz o roteamento das requisições para as views. A view é o único componente que "conversa" diretamente com a requisição e a resposta HTTP.

A pegadinha que a banca explora neste tema é confundir a view com outros conceitos do Django, como template, model, ou até mesmo com o objeto HttpRequest. O candidato que não domina a terminologia do framework pode facilmente marcar uma alternativa errada. A palavra-chave no enunciado é "função Python que recebe uma requisição web e retorna um objeto contendo o conteúdo da página" — isso descreve exatamente o papel da view.

Guarde a fronteira entre view (processa requisição e retorna resposta) e template (apenas renderiza HTML): é exatamente nela que as alternativas se dividem.

  1. 1URLconf (roteia)
  2. 2View (processa)
  3. 3Template (renderiza)
  4. 4HttpResponse (responde)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Esta alternativa provavelmente se refere a um conceito como template ou model. O template no Django é apenas a camada de apresentação: ele recebe um contexto (dicionário de dados) e renderiza uma string HTML. O template não recebe a requisição web diretamente nem retorna um HttpResponse — ele é chamado pela view para gerar o conteúdo. Já o model representa a estrutura dos dados no banco e não tem relação com o ciclo requisição-resposta.

Alternativa B — ❌ Incorreta

Esta alternativa provavelmente se refere a URLconf ou roteador. A URLconf é o módulo que mapeia padrões de URL para views. Ela não recebe a requisição e retorna uma resposta; ela apenas direciona a requisição para a view correta com base na URL solicitada. O roteamento é uma etapa anterior ao processamento pela view.

Alternativa C — ❌ Incorreta

Esta alternativa provavelmente se refere a middleware. O middleware no Django é um componente que processa a requisição e a resposta globalmente, antes e depois da view. Ele pode modificar a requisição, a resposta, ou interromper o processamento. No entanto, o middleware não é a função que recebe a requisição e retorna o conteúdo da página — ele é um "filtro" que envolve a view.

Alternativa D — ❌ Incorreta

Esta alternativa provavelmente se refere a form ou serializer. Os forms no Django são usados para validar e processar dados de formulários HTML, enquanto os serializers (do Django REST Framework) convertem dados entre formatos como JSON e objetos Python. Nenhum deles é a função que recebe a requisição web e retorna o conteúdo da página.

Alternativa E — ✅ Correta ⟵ GABARITO

A alternativa correta é view. A view é exatamente a função Python que recebe um objeto HttpRequest e retorna um objeto HttpResponse (ou uma exceção como Http404). Ela é o componente central do padrão MVT do Django, responsável por processar a requisição, executar a lógica de negócio e devolver a resposta HTTP ao cliente. A definição do enunciado é a definição canônica de view na documentação oficial do Django.

PEGA ESSA DICA!

Para fixar, lembre-se do fluxo no Django: URLconfViewTemplateHttpResponse. A view é o "meio do caminho": ela recebe a requisição, usa o model para buscar dados, renderiza o template e retorna a resposta. Se a alternativa falar de "função que recebe requisição e retorna resposta", é view. Se falar de "renderização de HTML", é template. Se falar de "mapeamento de URLs", é URLconf.

Gabarito: letra E

Link permanente: /questoes/ce191222