【发布时间】:2016-11-10 18:35:26
【问题描述】:
所以,请多多包涵,因为我对 Django、Python 和一般的 Web 开发还很陌生。我想要做的是显示我使用 matplotlib 制作的图表。我让它工作到主页自动重定向到图形的 png(基本上是浏览器中显示图形的选项卡)。但是,现在我想要的是查看带有简单嵌入图形的实际主页。换句话说,我想看到导航栏等,然后是网站正文中的图表。
到目前为止,我已经进行了搜索,并且对如何完成此任务有所了解。我在想的是有一个简单地返回图表的特殊视图。然后,以某种方式从我的模板中的 img src 标签访问这个 png 图像,我将使用它来显示我的数据。
图形代码:
from django.shortcuts import render
import urllib
import json
from django.http import HttpResponse
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
import datetime as dt
import pdb
def index(request):
stock_price_url = 'https://www.quandl.com/api/v3/datatables/WIKI/PRICES.json?ticker=GOOGL&date.gte=20151101&qopts.columns=date,close&api_key=KEY'
date = []
price = []
#pdb.set_trace()
source_code = urllib.request.urlopen(stock_price_url).read().decode()
json_root = json.loads(source_code)
json_datatable = json_root["datatable"]
json_data = json_datatable["data"]
for day in json_data:
date.append(dt.datetime.strptime(day[0], '%Y-%m-%d'))
price.append(day[1])
fig=Figure()
ax = fig.add_subplot(1,1,1)
ax.plot(date, price, '-')
ax.set_xlabel('Date')
ax.set_ylabel('Price')
ax.set_title("Google Stock")
canvas = FigureCanvas(fig)
response = HttpResponse(content_type='image/png')
#canvas.print_png(response)
return response
模板代码:
{% extends "home/header.html" %}
{% block content %}
<p>Search a stock to begin!</p>
<img src="home/graph.py" />
{% endblock %}
我现在得到了什么:
【问题讨论】:
标签: python django matplotlib graph