首页 > 编程语言 >【Web开发】Python实现Web服务器(Flask测试统计图表)

【Web开发】Python实现Web服务器(Flask测试统计图表)

时间:2022-10-22 20:37:15浏览次数:53  
标签:__ Web Python app Flask 统计图表 import directory path

在这里插入图片描述

1、前言

提示:Flask是一个用python语言基于Werkzeug工具箱编写的轻量级web开发框架,它主要面向需求简单,项目周期短的小应用。

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。

4、Flask测试网页(统计图表)

4.1 基于echarts的统计图的网页

https://echarts.apache.org

  • ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

  • ECharts 提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。

  • test_echarts.py:

#***************************************************************
#   Purpose:   基于echarts的统计图的网页(Flask的web服务器)
#   Author:    爱看书的小沐
#   Date:      2022-5-29
#   Languages: python
#   Platform:  python 3.9 win64
#   OS:        Win10 win64
# **************************************************************

from flask import Flask, Response, request
from flask import render_template, make_response, jsonify, send_from_directory
from io import FileIO
import os
import mimetypes
from flask_cors import CORS, cross_origin

app = Flask(__name__)
# cors = CORS(app)
CORS(app, supports_credentials=True)
# CORS(app, resources=r'/*')
# cors = CORS(app, resources={r"/api/*": {"origins": "*"}})

# 跨域支持
@app.after_request
def af_request(resp):     
    """
    #请求钩子,在所有的请求发生后执行,加入headers。
    :param resp:
    :return:
    """
    resp = make_response(resp)
    resp.headers['Access-Control-Allow-Origin'] = '*'
    resp.headers['Access-Control-Allow-Methods'] = 'GET,POST'
    resp.headers['Access-Control-Allow-Headers'] = 'x-requested-with,content-type'
    return resp

# 只允许路径为'/login'跨域!
@app.route('/login')
@cross_origin()
def data():
    return jsonify({'name':'tomcat'})

@app.route('/test')
@cross_origin(supports_credentials=True)
def hello():
    name = request.args.get("name", "World")
    return f'Hello, {name}!'

@app.route('/')
def index():
    return render_template('test_echarts.html')

@app.route("/<path>")
def get_cesiumfile(path):
    directory = os.getcwd() + "/static/echarts-5.3.2/package/dist/"
    response = make_response(send_from_directory(directory, path.encode('utf-8').decode('utf-8'), as_attachment=False))
    mime_type = mimetypes.guess_type(path)[0]
    if path.endswith(".js") :
       mime_type = "application/javascript"
    response.headers['Content-Type'] = mime_type
    print(directory, path, mime_type)
    return response

@app.route('/favicon.ico')
def favicon():
    return send_from_directory(os.path.join(app.root_path, 'static'), 'favicon.ico'
        , mimetype='image/vnd.microsoft.icon')

if __name__ == '__main__':
   app.run(debug = True)
  • 运行结果:

在这里插入图片描述 在这里插入图片描述

4.2 基于Highcharts.js的统计图的网页

https://www.highcharts.com.cn/

Highcharts 是一个用纯 JavaScript 编写的一个图表库, 能够很简单便捷的在 Web 网站或是 Web 应用程序添加有交互性的图表,并且提供给个人学习、个人网站和非商业用途使用。

Highcharts 支持的图表类型有直线图、曲线图、区域图、柱状图、饼状图、散状点图、仪表图、气泡图、瀑布流图等多达 20 种图表,其中很多图表可以集成在同一个图形中形成混合图。 image.png

  • 开源 Highcharts 最重要的特点之一就是:你都可以下载源码并可以对其进行编辑。基于开源社区我们可以第一时间获取用户的需求、及时的 Bug 修复及吸收社区贡献。 image.png
  • 纯 JavaScript Highcharts 完全基于 HTML5 技术,不需要再客户端安装任何插件,如 Flash 或 Java。此外你也不用配置任何服务端环境,不需要 PHP、Tomcat、ASP.NET 等,只需要两个 JS 文件即可运行。
  • 丰富的图表类型 Highcharts 支持的图表类型有直线图、曲线图、区域图、柱状图、饼状图、散状点图、仪表图、气泡图、瀑布流图等多达 20 种图表,其中很多图表可以集成在同一个图形中形成混合图。 image.png
  • 支持多坐标轴 多个数据进行对比这是非常常见的需求,Highcharts 可以让你为每个类型的数据添加坐标轴,每个轴可以定义放置的位置,所有的设置都可以独立生效,包括旋转、样式设计和定位,当然也支持多个数据共用一个坐标轴。

image.png

  • test_echarts.py:
#***************************************************************
#   Purpose:   基于Highcharts.js的统计图的网页(Flask的web服务器)
#   Author:    爱看书的小沐
#   Date:      2022-5-29
#   Languages: python
#   Platform:  python 3.9 win64
#   OS:        Win10 win64
# **************************************************************
from flask import Flask, Response, request
from flask import render_template, make_response, jsonify, send_from_directory
from io import FileIO
import os
import mimetypes
from flask_cors import CORS, cross_origin

app = Flask(__name__)
cors = CORS(app)
# CORS(app, supports_credentials=True)
# CORS(app, resources=r'/*')
# cors = CORS(app, resources={r"/api/*": {"origins": "*"}})

@app.route('/')
def index():
    return render_template('test_Highcharts.html')

@app.route("/<path:path>")
def get_staticfile(path):
    directory = os.getcwd() + "/static/"
    print(directory)
    response = make_response(send_from_directory(directory, path.encode('utf-8').decode('utf-8'), as_attachment=False))
    mime_type = mimetypes.guess_type(path)[0]
    if path.endswith(".js") :
       mime_type = "application/javascript"
    response.headers['Content-Type'] = mime_type
    print(directory, path, mime_type)
    return response

@app.route('/favicon.ico')
def favicon():
    return send_from_directory(os.path.join(app.root_path, 'static'), 'favicon.ico'
        , mimetype='image/vnd.microsoft.icon')

if __name__ == '__main__':
   app.run(debug = True)
  • 运行结果: 在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭ 如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O??? 如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡) 感谢各位童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

标签:__,Web,Python,app,Flask,统计图表,import,directory,path
From: https://blog.51cto.com/u_15800063/5780968

相关文章

  • 【Web开发】Python实现Web服务器(Flask测试后台框架模板)
    1、前言提示:Flask是一个用python语言基于Werkzeug工具箱编写的轻量级web开发框架,它主要面向需求简单,项目周期短的小应用。Flask是一个轻量级的可定制框架,使用Python语言......
  • weblogic洞若观火第5篇之手工操作管理节点
    引言上一篇文章,主要讲解:weblogic的手工创建域。在本篇文章中,我们接着介绍:weblogic的手工操作管理节点AdministrationServer。管理节点AdministrationServer管理服务器是......
  • python内置方法__getitem__,__delitem__,__setitem__
    classFoo:def__init__(self,name):self.name=namedef__getitem__(self,item):print('getitem')print(item)returns......
  • Python列表操作
    目录导航:1.for循环遍历列表2.range()函数3.对数字列表的统计操作4.列表切片5.复制列表6.元组的定义7.修改元组  1.for循环遍历......
  • Python第七章实验报告
    一.实验名称:《零基础学Python》第7章面向对象程序设计二.实验环境:IDLEShell3.9.7三.实验内容:5道实例、4道实战四.实验过程:实例01创建大雁类并定义飞行方法点......
  • (数据科学学习手札145)在Python中利用yarl轻松操作url
    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes1简介大家好我是费老师,在诸如网络爬虫、web应用开发等场景中,我们需要利......
  • python面试-理论面试题
    1.变量与值在内存中的关系变量通过变量指针,引用对象变量指针指向具体对象的内存空间,取对象的值。1.对象,类型已知,每个对象都包含一个头部信息(头部信息:类型标识符和引用......
  • 【Python】第3章-18 统计一行文本的单词个数
    随机输入一个字符串,把最左边的10个不重复的英文字母(不区分大小写)挑选出来。如没有10个英文字母,显示信息“notfound”输入格式:在一行中输入字符串输出格式:在一行中......
  • 【Python】第3章-16 删除重复字符
    本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。输入格式:输入是一个以回车结束的非空字符串(少于80个字符)。输出格式:输出去重排......
  • Python教程Day08-元组
    元组一、应用场景思考:如果想要存储多个数据,但是这些数据是不能修改的数据,怎么做?答:列表?列表可以一次性存储多个数据,但是列表中的数据允许更改。num_list=[10,20,30]num_......