豆瓣Top250数据可视化

流程分析

文件结构

具体代码

flask主流程

此模块主要完成网页载入和与数据库连接.

from flask import Flask,render_template
import _sqlite3
app = Flask(__name__)


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

@app.route('/index')
def home():
    # return render_template("index.html")
    return index()

@app.route('/movie')
def movie():
    datalist = []
    con = _sqlite3.connect("movie.db")
    cur = con.cursor()
    sql = "select * from movie250"
    data = cur.execute(sql)
    for item in data:
        datalist.append(item)
    cur.close()
    con.close()
    return render_template("movie.html",movies = datalist)

@app.route('/score')
def score():
    score = []      #评分
    num= []         #每个评分统计出的电影数
    con = _sqlite3.connect("movie.db")
    cur = con.cursor()
    sql = "select score ,count(score) from movie250  group by score"
    data = cur.execute(sql)
    for item in data:
        score.append(item[0])
        num.append((item[1]))
    cur.close()
    con.close()
    return render_template("score.html",score=score,num=num)

@app.route('/word')
def word():
    return render_template("word.html")

@app.route('/team')
def team():
    return render_template("team.html")


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

导入前端模板

在此导入下载好的模板,即static中的assets文件.

cloudworld(词云)

使用词云需先安装一些库,具体如下.

import jieba                                #分词
from matplotlib import pyplot as plt        #绘图,可视化
from wordcloud import WordCloud             #词云
from PIL import Image                       #图片处理
import numpy as np                          #矩阵运算
import sqlite3                              #数据库

#准备词云所需的文字
con = sqlite3.connect('movie.db')
cur = con.cursor()
sql = "select instroduction from movie250"
data = cur.execute(sql)
text = ""
for item in data:
    text = text+item[0]
    # print(item[0])
cur.close()
con.close()

#分词
cut = jieba.cut(text)
string = ' '.join(cut)
print(len(string))


img = Image.open(r'.staticassetsimg	ree.jpg')       #打开遮罩图片
img_array = np.array(img) #将图片转换为数组
wc = WordCloud(
    background_color='white',
    mask = img_array,
    font_path="msyh.ttc"    #字体所在位置C:WindowsFontsF

)
wc.generate_from_text(string)


##绘制图片
fig = plt.figure(1)
plt.imshow(wc)
plt.axis('off')     #是否显示坐标轴

plt.show()  #显示生成的词云图片
plt.savefig(r'.staticassetsimgword.jpg',dpi =500)

制作网页

网页图表(Echarts)

使用Echarts制作网页图标

基本网页

导入assets文件修改

结果展示

教学视频

Python爬虫编程基础5天速成(2021全新合集)Python入门+数据分析

源码

douban_flask

原文地址:https://www.cnblogs.com/thrseven/p/15173516.html