from flask import Flask, render_template, jsonify from pyecharts import options as opts from pyecharts.charts import Bar, Geo, Map from pyecharts.charts import Bar from pyecharts.faker import Faker app = Flask(__name__, static_folder="templates") @app.route('/getjson10', methods=['GET']) def getjson10(): # 千万不要先将内部的对象序列化成字符串,然后再序列化外边的对象。 # 再复杂的结构都可以表示为一个dict, # 而之前不需要做任何序列化操作!!! # 经过多轮测试,提前序列化会导致很多解析问题!!! # {'name': '浙江', 'value': '13.06'}, {'name': '广东', 'value': '9.31'}, # where year>='2000' and year<='2010' # sql = "select region,GDP from economyinfo where year='2010'" # result=db.session.execute(sql).fetchall() # datadict=[] # # for row in result: # provincename=row[0].replace('省','').replace('市','').replace('内蒙古自治区','内蒙古').replace('广西壮族自治区','广西').replace('西藏自治区','西藏').replace('宁夏回族自治区','宁夏').replace('新疆维吾尔自治区','新疆') # datadict.append({'name':provincename,'value':row[1]}) # # [{'name': '北京', 'value': 14113.6}, # # {'name': '天津', 'value': 9224.46}, # # {'name': '新疆', 'value': 5437.47}] # # sql_data = pd.DataFrame(db.session.execute(sql).fetchall()) # # sql_data.columns = [i[0] for i in db.session.execute(sql).cursor.description] # # # region GDP # # # 0 北京市 14113.6000 # # # 1 天津市 9224.4600 # # # 2 河北省 20394.2600 # # # 3 山西省 9200.8600 # # sql_data['region'] = sql_data['region'].str.replace('市', '') # # sql_data['region'] = sql_data['region'].str.replace('省', '') # # sql_data['region'].replace(['内蒙古自治区','广西壮族自治区','西藏自治区','宁夏回族自治区','新疆维吾尔自治区'],['内蒙古','广西','西藏','宁夏','新疆'],inplace=True) # # datadict = sql_data.to_dict('records') # # # [{'region': '北京', 'GDP': 14113.6}, # # # {'region': '天津', 'GDP': 9224.46}, # # # {'region': '新疆', 'GDP': 5437.47}] datadict = [{'name': '北京', 'value': 14113.6}, {'name': '天津', 'value': 9224.46}, {'name': '河北', 'value': 20394.26}, {'name': '山西', 'value': 9200.86}, {'name': '内蒙古', 'value': 11672.0}, {'name': '辽宁', 'value': 18457.3}, {'name': '吉林', 'value': 8667.58}, {'name': '黑龙江', 'value': 10368.6}, {'name': '上海', 'value': 17165.98}, {'name': '江苏', 'value': 41425.48}, {'name': '浙江', 'value': 27722.31}, {'name': '安徽', 'value': 12359.33}, {'name': '福建', 'value': 14737.12}, {'name': '江西', 'value': 9451.26}, {'name': '山东', 'value': 39169.92}, {'name': '河南', 'value': 23092.36}, {'name': '湖北', 'value': 15967.61}, {'name': '湖南', 'value': 16037.96}, {'name': '广东', 'value': 46013.06}, {'name': '广西', 'value': 9569.8539}, {'name': '海南', 'value': 2064.5}, {'name': '重庆', 'value': 7925.58}, {'name': '四川', 'value': 17185.48}, {'name': '贵州', 'value': 4602.16}, {'name': '云南', 'value': 7224.18}, {'name': '西藏', 'value': 507.46}, {'name': '陕西', 'value': 10123.48}, {'name': '甘肃', 'value': 4120.75}, {'name': '青海', 'value': 1350.43}, {'name': '宁夏', 'value': 1689.65}, {'name': '新疆', 'value': 5437.47}] response = jsonify(datadict) response.status_code = 200 # or 400 or whatever return jsonify(datadict) # 中国行政区域的gdp统计 @app.route('/echartdemo10') def echartdemo10(): return render_template('echartdemo10.html') if __name__ == "__main__": app.run()