Wie bekomme ich ein Diagramm von Matplotlib in Django Vorlagen?

Angesichts dieses Beispiels von hier genommen :

def simple(request): import random from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas from matplotlib.figure import Figure from matplotlib.dates import DateFormatter fig=Figure() ax=fig.add_subplot(111) x=[] y=[] now=datetime.datetime.now() delta=datetime.timedelta(days=1) for i in range(10): x.append(now) now+=delta y.append(random.randint(0, 1000)) ax.plot_date(x, y, '-') ax.xaxis.set_major_formatter(DateFormatter('%Y-%m-%d')) fig.autofmt_xdate() canvas=FigureCanvas(fig) response=django.http.HttpResponse(content_type='image/png') canvas.print_png(response) return response 

Wie kann ich die Ansicht so schreiben, dass eine Vorlage und eine Variable wie return render_to_response ('template.html',{'graph': <graph generated by matplotlib> } verwendet wird: return render_to_response ('template.html',{'graph': <graph generated by matplotlib> }

  • Wie kann man eine fortlaufende Sequenz von IDs als Primärschlüssel in einer SQL-Datenbank wiederherstellen?
  • Django Inline-Formulare und Auswahlfelder erzeugen zu viele db-Abfragen
  • Django das Anforderungsobjekt ändern
  • Django 1.5.1 'ImportError: Kein Modul namens urls' beim Ausführen von Tests
  • Wie man eine ganze Zahl von Nullen in django geführt
  • Django: Freundlicher Header für StackedInline für Auto generiert durch Modell?
  • One Solution collect form web for “Wie bekomme ich ein Diagramm von Matplotlib in Django Vorlagen?”

    Als ich eine ähnliche Situation hatte, benutzte ich zwei Ansichten. Man verwendete matplotilb, um ein PNG zu erzeugen, während das andere verwendete Django-Vorlagen verwendet, um eine HTML-Seite zu erstellen, die das PNG (und einige andere Daten) präsentierte. Der Param, der an die Vorlage gesendet wurde, war nur der PNG-Dateiname. Die andere Ansicht wird dann an die entsprechenden .png URLs angehängt.

    Ein Problem ist, wenn Sie einige Parameter berechnen wollen, die sowohl für die Erzeugung von HTML und PNG verwendet werden. Ich habe solche Informationen im Dateinamen verschlüsselt. Das ist schmerzhaft und leicht hackig, aber es ist auch gut für den Benutzer, wenn alle Infos im Dateinamen sind, wenn sie es sichert.

    Python ist die beste Programmiersprache der Welt.