第三讲一小时学会Flask框架(三)

案例解析

基础数据

上节课我们分析出来的三国人物的频次的分析的结果是:

role_name = ["孔明", "玄德", "曹操", "云长", "张飞", "孙权", 
"吕布", "赵云", "司马懿", "孔明","周瑜"]
counts = [1204, 1159, 910, 749, 340, 259, 258, 254, 221, 216]

更改app.py

from flask import Flask,render_template

app = Flask(__name__)

@app.route('/')
def shou_line():

    role_name = ["孔明", "玄德", "曹操", "云长", "张飞", 
                          "孙权", "吕布", "赵云", "司马懿", "孔明","周瑜"]
    counts = [1204, 1159, 910, 749, 340, 259, 258, 254, 221, 216]
    return render_template('bar.html', role_name=role_name, counts=counts)

if __name__ == '__main__':
    app.run()

更改bar.html

  1. 首先修改echarts引入文件
    和之前引入js的方式不同,Jinja2引入js文件使用url_for的方式
  • 静态文件引入:{{ url_for('static', filename='文件路径') }}
  • 定义路由:{{ url_for('模块名.视图名',变量=参数) }}
  • 定义数据块:{% block 数据块名称 %}...{% endblock %}
  • 继承模板:{% extends "home/home.html" %}
  • 包含模板: {% include "home/menu.html" %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="{{ url_for('static', filename='echarts.min.js') }}"></script>

</head>

</html>
  1. 使用Jinjia2模板语法修改bar.html的数据值
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="{{ url_for('static', filename='echarts.min.js') }}"></script>

</head>

<body>
<div id="main" style=" width: 900px;height:600px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    // 标题
    title: {
        text: '三国演义出场频次展示'
    },
    // 工具箱
    toolbox: {
        show: true,

        feature: {
            dataView:{
                show:true
            },
            restore:{
                show:true
            },
            dataZoom:{
                show:true
            },
            saveAsImage: {
                show: true
            },
            magicType: {
                type: ['line', 'bar']
            }
        }
    },
    // 图例
    legend: {
        data: ['三国演义出场频次展示']
    },
    // x轴
    xAxis: {
        data:{{ role_name|tojson }}
    },
    yAxis: {},
    // 数据
    series: [{
        name: '三国演义出场频次展示',
        type: 'bar',
        data: {{ counts|tojson }},
        itemStyle:{
            normal:{
                color:'#5CACEE'
            }
        },

    }]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>

</body>

</html>


运行app.run()文件
访问http://127.0.0.1:5000/漂酿的结果展示出来了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容