Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

122
Vistas
enviando datos json desde django a d3.js

Estoy tratando de pasar un conjunto de consultas en views.py de django a d3.js.

vistas.py:

def index(solicitud): qs = DCPOWERSTATS.objects.all().values('TS','PuE').order_by('TS') return render(solicitud, 'dashboard/dash.html', context=qs} )

guión.html:

 <!DOCTYPE html> <meta charset="utf-8"> <style> .chart div { font: 10px sans-serif; background-color: steelblue; text-align: right; padding: 3px; margin: 1px; color: white; } </style> <div class="chart"></div> <script src="//d3js.org/d3.v3.min.js"></script> <script> var data = {{ data_json }}; var x = d3.scale.linear() .domain([0, d3.max(data)]) .range([0, 420]); d3.select(".chart") .selectAll("div") .data(data) .enter().append("div") .style("width", function(d) { return x(d) + "px"; }) .text(function(d) { return d; }); </script>

Necesito hacer cambios en views.py y dash.html para crear algo como: https://bl.ocks.org/mbostock/3885304

Todas las respuestas anteriores son confusas. Necesito una solución para views.py y dash.html. También necesito saber la manera perfecta de enviar los resultados del conjunto de consultas a javascript.

¡Gracias!

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Debe convertir sus modelos en listas/diccionarios simples para poder convertirlos en JSON. Decidiste usar values() en el conjunto de consultas. También hay serialización Django .

A pesar de la serialización, tiene dos opciones aquí.

JSON que devuelve vistas

O crea una vista que devuelve directamente datos JSON usando JsonResponse .

 from django.http import JsonResponse def index(request): qs = DCPOWERSTATS.objects.all().values('TS','PuE').order_by('TS') # slice the queryset to hit the database and convert into list return JsonResponse(qs[:])

Ahora puede cargar estos datos en el lado del cliente mediante una llamada ajax.

html (usando jQuery)

 // assuming you have registered your view at '/dcpowerstats' $.ajax({ url: "http://example.com/dcpowerstats", success: function(data) { console.log(data); } });

Pasando JSON a tu plantilla

O renderiza sus datos JSON directamente en la plantilla HTML usando. En este caso, debe agregar sus datos serializados a la vista y usar la etiqueta de plantilla allí.

vista

 import json from django.shortcuts import render def index(request): qs = DCPOWERSTATS.objects.all().values('TS','PuE').order_by('TS') # slice the queryset to hit the database and convert into list context = {'data_json': json.dumps(qs[:])} return render(request, 'dashboard/dash.html', context=context)

html

 <script> var data = {{ data_json|safe }}; </script>

La forma de elegir depende de su interfaz y preferencias.

Si solo necesita algunos datos estáticos disponibles en sus vistas javascript, elegiría la opción de plantilla.

Si su interfaz necesita poder cargar diferentes cosas dinámicamente y la cantidad de datos es mayor, elija la segunda opción. En este caso, también consideraría usar django rest framework .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda