Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

398
Views
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!

about 4 years ago · Santiago Trujillo
1 answers
Answer question

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 .

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!