项目9-Flask综合数据分析输出
柱状图参考代码:
from flask import Flask, render_template,Response,request import io import random from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas from matplotlib.figure import Figure import requests import json from bs4 import BeautifulSoup import pandas as pd import numpy as np app = Flask(__name__) @app.route('/') @app.route('/ClassChart',methods=['get']) def Index(): chartType= request.args.get('chartType') algorithm= request.args.get('algorithm') classNo= request.args.get('classNo') className= request.args.get('className') return render_template('Index.html',chartType=chartType,algorithm=algorithm,classNo=classNo,className,className) def getHtmlText(url): try: r=requests.get(url,timeout=30) r.raise_for_status() r.encoding='utf-8' return r.text except: return @app.route('/bar.png') def plot_png(): fig = create_figure() output = io.BytesIO() FigureCanvas(fig).print_png(output) return Response(output.getvalue(), mimetype='image/png') def create_figure(): fig = Figure() axis = fig.add_subplot(1, 1, 1) url='http://www.dshow.net:8801/api/rankdshow/10' html=getHtmlText(url) listRank=list() listDictRank=json.loads(html) listName=list() listResult=list() for item in listDictRank: listName.append(item["PlayerSID"]) listResult.append(item["ResultResult"]) # xs=["zz","bb","cc"] # # ys = [random.randint(1, 50) for x in xs] # ys=[11,8,44] axis.bar(listName, listResult) return fig if __name__ == '__main__': app.run(debug = True)
Index.html代码<待写,未完>:
<h2>柱状图h2> <div align="center" style="width:1000px;height:500px;border:0px solid #F00"> <p> <img src="/bar.png" alt="my plot"> p> div>