1.在项目中创建static文件夹-------创建js文件夹-----js文件夹下放echarts.min.js(需要在echarts官网下载)
2.在项目中创建templates文件夹-------创建base.html index.html analyseinfo.html 三个html页面
app.py

from flask import Flask,render_template,request
from mysqlunit import MySql
import pandas as pd
app=Flask(__name__)
global rows
@app.route("/")
def index():global rowsdb=MySql(db="test")sql="select * from books"rows=db.query(sql)print(rows)return render_template("index.html",rows=rows)
@app.route("/tonji")
def showAnalyse():global rowsdf = pd.DataFrame(rows)print(df)df1 = df.groupby("Press").count()["BookId"].sort_values(ascending=False).head()print(df1)return render_template("analyseInfo.html", x=list(df1.index), y=list(df1))if __name__ == '__main__':app.run(debug=True)

mysqlunit.py

import pymysqlclass MySql():# 类的构造方法,实例化对象时,获得连接及游标def __init__(self,db="test"):self.conn=pymysql.connect(host='127.0.0.1',db=db,user="root",passwd="123456")self.cursor=self.conn.cursor(pymysql.cursors.DictCursor)# 通用查询方法,传递sql及sql中数据def query(self,sql,args=None):self.cursor.execute(sql,args=args)return self.cursor.fetchall()# 通用增删改方法,传递sql及sql中数据def update(self,sql,args=None):num=self.cursor.execute(sql,args=args)self.conn.commit()if num:return Trueelse:return False# 关闭资源def close(self):self.conn.close()

base.html
注意:在里面所需要的echarts.min.js文件可以在echarts菜鸟教程里面复制到项目中!在项目的static文件夹下创建js文件夹再在js文件夹下创建js文件(echarts.min.js)
连接如下:
echarts.min.js下载

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="static/css/bootstrap.css">{% block styles %}{% endblock %}
</head>
<body>
<h2 align="center">当当网书籍信息后台统计</h2>
<p>&nbsp;&nbsp;<a href="/tonji"><span class="glyphicon glyphicon-pencil"></span>&nbsp;前5名出版数量</a><span>|</span><a href="/"><span class="glyphicon glyphicon-th-list"></span>&nbsp;查看书籍信息</a>
<hr/>
</p>
{% block content %}
{% endblock %}{% block scripts %}
{% endblock %}
</body>
</html>

index.html

{% extends "base.html" %}
{% block content %}<table class="table table-striped"><tr><th>编号</th><th>书名</th><th>价格</th><th>作者</th><th>出版社</th><th>出版日期</th><th>评论数</th></tr>{% for row in rows %}<tr><td>{{ row["BookId"] }}</td><td>{{ row["Title"] }}</td><td>{{ row["Price"] }}</td><td>{{ row["Author"] }}</td><td>{{ row["Press"] }}</td><td>{{ row["PubTime"] }}</td><td>{{ row["Comments"] }}</td></tr>{% endfor %}</table>
{% endblock %}

analyseinfo.html

{% extends "base.html" %}
{% block content %}<script src="static\js\echarts.min.js"></script><div id="main" style="width: 800px;height: 400px;margin: 0 auto"></div><script>// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));// 指定图表的配置项和数据var option = {title: {text: '前5名出版社数量'},tooltip: {},legend: {data: ['数量']},xAxis: {data: {{x | safe}}},yAxis: {},series: [{name: '数量',type: 'bar',data:  {{y | safe}}}]};// 使用刚指定的配置项和数据显示图表。myChart.setOption(option);</script>
{% endblock %}

当当网书籍信息后台统计相关推荐

  1. 爬虫爬当当网书籍信息

    拖了好久的一个爬虫 先上代码 文字慢慢补 update(2018-5-7):加了出版社= = updata(2018-6-29):啥都加了 https://github.com/general10/d ...

  2. Python 爬虫第三步 -- 多线程爬虫爬取当当网书籍信息

    XPath 的安装以及使用 1 . XPath 的介绍 刚学过正则表达式,用的正顺手,现在就把正则表达式替换掉,使用 XPath,有人表示这太坑爹了,早知道刚上来就学习 XPath 多省事 啊.其实我 ...

  3. python爬虫-爬取当当网书籍信息存到Excel中

    文章目录 一.任务 二.分析 (一).单页面的信息分析 源代码分析 目标信息定位与分析 代码设计 (二).所有目标页面链接分析 目标链接分析 代码设计 三.注意要点 四.完整代码 五.参考 一.任务 ...

  4. Python |(爬虫 )爬取当当网书籍信息存到Excel中

    文献检索作业,小白也很无奈.还好有学霸同学的可以借鉴. 一.任务 获取当当网上至少300本书[均为某类书,如Linux相关的书籍,或C++相关的书籍]的信息,包括书名,网址,价格,作者,并存在exce ...

  5. 基于Pandas和PyEcharts的当当网图书信息可视化分析

    1 绘制python图书封面的照片墙 import math import os from PIL import Imagedef makePicturesWall(picdir):picslist ...

  6. 【python】分析当当网书籍价格、出版社、电子书版本占比数据

    前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 本次案例实现目标 书籍基本数据 实现可视化图表 书籍评论数据 评论可以实现词云图 最基本思路流程: <通用> 一. ...

  7. 当当网书籍数据爬进数据库

    当当网书籍数据爬进数据库 首先我们要考虑到当当网有没有反爬机制,几次后发现是没有的. 一开始我们要考虑我们要爬取的信息是哪些,然后在items.py下面全部写出来. 然后就写爬虫文件 从核心文件开始定 ...

  8. 一位同学的Python大作业【分析当当网书籍价格、出版社、电子书版本占比数据】

    目录 前言 本次案例实现目标 最基本思路流程: <通用> 一. 数据来源分析 二. 代码实现步骤过程: 代码实现基本四大步骤 代码实现 获取书籍详情信息 发送请求 解析数据 保存数据 运行 ...

  9. scrapy框架的简单使用——爬取当当网图书信息

    ** Scrapy爬取当当网图书信息实例 --以警察局办案为类比 ** 使用Scrapy进行信息爬取的过程看起来十分的复杂,但是他的操作方式与警局办案十分的相似,那么接下来我们就以故事的形式开始Scr ...

最新文章

  1. 文件服务器搭建 xp,xp文件服务器搭建
  2. Qt控制台输出QString
  3. 讲真,做Python一定不要只会一个方向!
  4. Silver Cow Party POJ - 3268(dijkstra+反向交换)
  5. 【笔记】Java数据结构与算法
  6. JTable 的使用
  7. Visio使用注意事项
  8. Java实现一个简单的两人五子棋游戏(二) 画棋盘
  9. 1.7 爬取汽车之家实战
  10. android如何保证多线程安全,保证线程安全的方式有哪几种?
  11. Web前端大作业 HTML+CSS+JS 防天天生鲜官网 9页
  12. mysql用户标签表设计_「用户标签」在数据库设计时应该如何存储?
  13. 色彩对比广告设计_为什么我们都需要使用色彩对比检查器
  14. 学术英语视听说2听力原文_大学学术英语视听说2-高迎慧
  15. 计算机硬盘无法启动怎么办,解决办法:如果计算机无法从硬盘启动怎么办
  16. Android 模拟器 Root 和 SuperSU 安装
  17. 赠书:支付平台架构业务、规划、设计与实现
  18. numeric scale mysql_MySQL基础教程1 — 数据类型之数值类型 - numeric
  19. 保险丝的作用,参数及选型应用,你真的懂了吗——电子元器件篇
  20. java中的构造方法必须和类名相同,在Java中,关于构造方法,下列说法错误的是()A、构造方法的名称必须与类名相同B、构造方法可以...

热门文章

  1. JVM Hotspot 虚拟机与 DalvikART 虚拟机堆栈的区别
  2. 京东面试真题解析,薪资翻倍
  3. 国家政策!大有广阔天地的商城结算平台
  4. 使用卷积和递归神经网络通过序列和本体表示改进circRNA-疾病关联预测
  5. Linux多线程网络编程要义丨epoll与reactor原理
  6. parseFloat详解
  7. 宇尚网络——智慧消防解决方案与产品介绍
  8. 使用CDN提高Flask-Moment(Moment.js)的加载速度
  9. SMART Talk
  10. android10调用tuya接口完成二维码登录