Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

223
Visualizações
Django: muestra Json o Httpresponse en la plantilla

Tengo algo así en views.py:

 return JsonResponse({'foo': 'bar'})

¿Cómo mostraría "barra" en la plantilla? Algo como:

 <h1 id="demo"></h1> <script> document.getElementById("demo").innerHTML = ?JsonResponse?; </script>

o podría hacerse con respuesta http?

 return HttpResponse("Bar")

y HTML:

 <h1 id="demo"></h1> <script> document.getElementById("demo").innerHTML = ?HttpResponse?; </script>
about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Está bien. Supongamos que tiene una url /yourURL conectada a una función de vista. Llamemos a esta función índice:

 from django.shortcuts import render def index(request): data = {foo:'bar'} render(request,'path/to/yourTemplate.html',data)

Uso render como atajo. En yourTemplate.html, puede acceder a los datos como {{foo}} en cualquier lugar. Para enviar objetos json a la plantilla sin renderizar, considere la siguiente plantilla (yourTemplate.html):

 <div id='initialData'>{{foo}}</div> <div id='jsondata'></div>

Necesita una nueva vista y una solicitud ajax para obtener información de ella. Puede hacer esto en la misma vista de índice, o puede crear una nueva URL y una vista asociada. Usemos la segunda opción. Es así, construyes una nueva URL /yourURL/download conectada a una vista de download (views.py):

 def download(request): data = {foo2:'bar2'} JsonResponse(data)

Luego, necesita una solicitud ajax para llamar a esta vista y escribir la respuesta en el div en caso de éxito (yourTemplate.html):

 <script> $.ajax({ url: "/yourURL/download", type: 'get', success: function (data) { alert("Success"); var div = document.getElementById('jsondata'); div.innerHTML = div.innerHTML + data.foo; } }); </script>

¡Voila! Tendrá tanto bar como bar2 en su pantalla. Para obtener más detalles, necesita un botón asociado con la llamada ajax, para que pueda ver que la página en realidad no se vuelve a mostrar con JsonResponse.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda