flask+ highcharts实现报表转换成趋势图(2)

来源:互联网 发布:mac终端获取文件路径 编辑:程序博客网 时间:2024/06/07 14:58

根据上一篇继续

http://blog.csdn.net/xx123er/article/details/77945591

3.flask脚本的编写


fromflaskimport Flask, jsonify, render_template, request,redirect,url_for
# import forms
importjson
importdata_view

app = Flask(__name__)
# app.jinja_env.add_extension("chartkick.ext.charts")


@app.route('/',methods=['GET','POST'])
@app.route('/index',methods=['GET','POST'])
defindex():
   ifrequest.method =='GET':
        view=data_view.viewdata()
        view.getmethod()
        time1="2017-9-5"
       time2="2017-9-8"
   ifrequest.method == 'POST':
        time1 = request.form.get('start_time',180)
        time2 = request.form.get('end_time',180)
        col_name = request.form.get('col_name')
        view = data_view.viewdata()
        view.postmethod(time1,time2,col_name)

   returnrender_template('highcharts_line_labels.html',tit=view.title,xax=view.xAxis,yax=view.yAxis,seri=view.series,start_time=time1,end_time=time2)

if__name__ =="__main__":
    app.run(debug=True,host='0.0.0.0',port=5000)


4..数据组装模块data_view.py


importdatabase_csv
importsys

classviewdata():
   def__init__(self):
       self.title={}
       self.title["style"]={}
       self.title["style"]["color"]="#ff0000"
       self.xAxis={}
       self.yAxis={}
       self.yAxis["title"] = {}
       self.series=[]

   defgetmethod(self):
       self.title["text"]='rsp'
       self.xAxis["categories"]=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
       self.yAxis["title"]["text"]='num'
       y1 = {}
        y1["name"] ='Tokyo'
       y1["data"] = [3.9,4.2,5.7,8.5,11.9,15.2,17.0,16.6,14.2,10.3,6.6,4.8]
       self.series.append(y1)

   defpostmethod(self,start,end,colnu):
       printcolnu
        file,columns,y_txt=self.co2columns(str(colnu))
        database = database_csv.csv_data(file)
        database.select_bytime(str(start),str(end))
        data = database.select_col(columns)
       # print data
       self.title["text"] =str(colnu)
       self.xAxis["categories"] = [str(i)fori indata["Time"]]
       self.yAxis["title"]["text"] = y_txt
       fore incolumns:
            y2 = {}
            y2["name"] = e.split("_")[-1]
            y2["data"] = [valforval indata[e]]
           self.series.append(y2)

   defco2columns(self,co):
       ifco=="toatal_cost":
            file="stress.csv"
           columns = ["toa_min","toa_max","toa_aver","toa_80","toa_90","toa_95"]
            ytxt="~ second"

       returnfile,columns,ytxt

原创粉丝点击