爬虫--可视化项目(二)

 上次步骤请看, 爬虫--可视化项目(一)_北希738的博客-CSDN博客

一,创建flask项目,导入模板,创建路由。

二,添加可视化页面,构造可视化网页,利用css 样式,并引入数据可视化的相关js包。

三,创建一个py文件,调用数据库数据。

四,路由引用数据,并返回给页面。

五,利用ajax获取后台数据,让页面呈现。

一、创建路由

        

from flask import Flask
from flask import request
from flask import render_template
from flask import jsonify
# from jieba.analyse import extract_tags
import string
import utils

app = Flask(__name__)


@app.route('/')  # 访问目标路由
def hello_world():  # put application's code here
    return render_template("mian.html")


@app.route("/c1")
def get_cl_data():
    data = utils.get_cl_data()
    return jsonify({"sum_confirmed": data[0], "sum_cured": data[1], "sum_died": data[2]})


@app.route("/c2")
def get_c2_data():
    res = []
    for tup in utils.get_c2_data():
        res.append({"name": tup[0], "value": int(tup[1])})
    return jsonify({"data": res})




@app.route('/ajax', methods=["get", "post"])  # 访问目标路由
def hello_world4():  # put application's code here
    name = request.values.get("name")
    pwd = request.values.get("pwd")
    print(f'name={name},pwd={pwd}')
    return '1000'


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

二、调用数据库。

        

import time
import pymysql


def get_time():
    time_str = time.strftime("%Y{}%m{}%d %X")
    return time_str.format("年", "月", "日")


def get_conn():
    # return 链接,游标

    # 创建链接
    conn = pymysql.connect(host="",
                           user="",
                           password="",
                           db="",
                           charset="")
    # 创建游标,默认是元组型
    cursor = conn.cursor()
    return conn, cursor


def close_conn(conn, cursor):
    if cursor:
        cursor.close()
    if conn:
        conn.close()


def query(sql, *args):
    """
    封装通用查询
    :param sql:
    :param args:
    :return :返回查询到的结果,((),(),)的形式
    """
    conn, cursor = get_conn()
    cursor.execute(sql, args)
    res = cursor.fetchall()
    close_conn(conn, cursor)
    return res


def get_cl_data():
    """
    :return: 返回大屏div id=c1的数据
    """
    # 因为会更新多次数据,取时间戳最新的数据
    sql = "select sum_confirmed," \
          "sum_cured," \
          "sum_died " \
          "from total " \
          "where updataTime = (select updataTime from total order by updataTime desc limit 1)"
    res = query(sql)
    return res[0]




if __name__ == "__main__":
    # print(get_time())
    # print(get_cl_data())
    print(get_r2_data())

三、利用ajax获取后端数据

        

function gettime() {
    $.ajax({
        url: "/time",
        timeout: 10000,//超时时间设置10秒
        success: function (data) {
            $("#time").html(data)
        },
        error: function (xhr, type, errorThrown) {

        }
    });
}

function get_cl_data() {
    $.ajax({
        url: "/c1",
        success: function (data) {
            $(".num h1").eq(0).text(data.sum_confirmed);
            $(".num h1").eq(1).text(data.sum_cured);
            $(".num h1").eq(2).text(data.sum_died);
        },
        error: function (xhr, type, errorThrown) {

        }
    })
}

gettime()
get_cl_data()

四,以及简单的前端页面制作,和echarts代码导入。

提供一些简单的代码文件。

echarts.min.js

china.js

jquery-3.4.1.min.js

推荐大家到官网上下载。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值