参考文档:
https://flask.palletsprojects.com/en/1.0.x/blueprints/
目录结构:
(vpp_agent_venv3.7) [root@localhost source]# tree
.
├── app
│ ├── __init__.py
│ ├── views
│ │ ├── ik_agent_view.py
│ │ ├── ik_echarts_view.py
│ │ ├── ik_file_view.py
│ │ ├── ik_test_view.py
│ │ ├── ik_user_view.py
│ │ ├── ik_vpp_view.py
│ │ └── __init__.py
├── release
│ └── service
│ ├── ptt_agent.service
│ └── vpp.service
├── release_note.txt
├── requirements.txt
├── templates
│ ├── components.html
│ ├── index2.html
│ ├── index.html
│ ├── internal_server_error.html
│ ├── macro
│ ├── nb_components.html
│ ├── nb_jupyter_globe.html
│ ├── nb_jupyter_lab.html
│ ├── nb_jupyter_lab_tab.html
│ ├── nb_jupyter_notebook.html
│ ├── nb_jupyter_notebook_tab.html
│ ├── nb_nteract.html
│ ├── simple_chart.html
│ ├── simple_globe.html
│ ├── simple_page.html
│ └── simple_tab.html
├── gunicorn_config.py
└── wsgi.py
bp+模板渲染+wsgi:
定义蓝图
app/views/ik_echarts_view.py
# rom flask import Flask
from jinja2 import Markup
import random
from pyecharts import options as opts
from pyecharts.charts import Bar
from flask import Blueprint
from flask import request, render_template
from app.ik_global import ik_global
debug = ik_global.Logger.debug
bp = Blueprint('echarts', __name__)
def bar_base() -> Bar:
c = (
Bar()
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
.add_yaxis("商家B", [15, 25, 16, 55, 48, 8])
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))
)
return c
def bar_base2(title="shen", subtitle="xianjie") -> Bar:
c = (
Bar()
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
.add_yaxis("商家A", [random.randint(10, 100) for _ in range(6)])
.add_yaxis("商家B", [random.randint(10, 100) for _ in range(6)])
.set_global_opts(title_opts=opts.TitleOpts(title=title, subtitle=subtitle))
)
return c
"""
@bp.route("/")
def index():
c = bar_base()
return Markup(c.render_embed())
"""
@bp.route("/")
def index():
args = request.args.to_dict()
debug("args--> {}".forma