六、数据可视化—首页、列表页制作(爬虫及数据可视化)

1,首页制作

使用前面爬取的movie.db数据库,完成豆瓣的可视化表现

(1)创建新项目选择flask框架

在这里插入图片描述

新建完成后
在这里插入图片描述

数据库可以放在指定的位置,也可以放在flask框架下面
理论上数据库需要单独放置,不会和项目放在一起

此处直接放在根路径下了

(2)下载模板

此处找到现有的模板,在其基础上进行修改
http://www.cssmoban.com/cssthemes/
使用模板之家的模板,可以根据自己需要选择

因为豆瓣数据比较小就选择比较简单的
在这里插入图片描述

http://www.cssmoban.com/cssthemes/9296.shtml

此网站风格像是企业站的风格

对于我们来讲,需要上面是一个标题栏,能够点一下,下面就显示一些具体的数据,图标等信息,此处基本满足要求,就选择了

此素材在云盘中已经存在了,

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

想很多自适应的,都是使用jQuery进行实现的

(3)导入flask框架中进行改写

如何将其导入flask框架中进行改写,首先将index.html复制到flask中的templates

未来所有的网页要想静态的显示,都要放到templates中

将assets放到static中,一些静态文件,主要是考虑到未来CDN的分发,把静态文件分发到很多服务器上去,降低服务器的访问压力,一般静态文件放到static中,网页渲染的文件会单独拿出来。

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

(4)访问服务器

在这里插入图片描述

(5)修改图片路径

但只有文字,说明图片路径不对,之前复制到static的时候,相对路径变了,现在需要将index.html页面中的assets前加入static

如下

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

路径替换好后,再次访问就显示成功了,如下

在这里插入图片描述

通过此种方式,即可将外部下载的网页模板实现了本地化的一个配置

(6)修改html

要对别人的HTML改成自己想要的一些效果
初步想法如下

在这里插入图片描述

为了更直观的修改我们想要修改的地方,可以进入检查,用鼠标找到我们想要更改的位置,再进入html的源代码页面进行删除更改

在这里插入图片描述

也可以在pycharm中找到搜索

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

将drop down和contact us删除(不需要了)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

第一频想显示的是我们的信息不是团队,只要
在这里插入图片描述

将下方的替换掉上方的位置

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

在这里插入图片描述

结果如下

在这里插入图片描述

此时首页就制作完成了

2,列表页制作

(1)更改标题

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

在这里插入图片描述

(2)下载图标

可以在下方连接中下载图标

是阿里开源出来的,大部分免费
https://www.iconfont.cn/

在这里插入图片描述

(3)更改跳转链接

在这里插入图片描述

在这里插入图片描述

点击超链接是可能报错,是因为没有进行响应
在这里插入图片描述
在这里插入图片描述

下面对后面的进行一下清除

将首页index中的从main开始到end main删除
在这里插入图片描述

在这里插入图片描述

(4)更改app.py

from flask import Flask,render_template

app = Flask(__name__)


@app.route('/')                             #访问根路径
def index():
    return render_template("index.html")    #在templates下的路径

@app.route('/index')                             #访问根路径/index时和访问根路径时返回的网页是一样的,即首页
def home():
    #return render_template("index.html")    #在templates下的路径
    return index()                          #不返回模板渲染的页面,而是返回一个函数是一样的

@app.route('/movie')                             #访问根路径
def movie():
    return render_template("movie.html")

@app.route('/score')                             #访问根路径
def score():
    return render_template("score.html")

@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()

现在连接基本搞定了,需要改的,路由解析,模板渲染

(5)Movie.html展示表格

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

在这里插入图片描述

@app.route('/movie')                             #访问根路径
def movie():
    datalist=[]
    con = sqlite3.connect("movie.db")           #连接数据库,路径当前路径
    cur = con.cursor()                          #游标定义
    sql = "select * from movie250"              #从数据库中的表movie250查询所有数据
    data = cur.execute(sql)
    for item in data:
        datalist.append(item)                   #得到的数据要保存到列表中,否则后面关闭时会丢失信息
    cur.close()
    con.close()
    return render_template("movie.html",movies=datalist)    #将datalist数据放到movies变量中,在渲染网页时将movies传到网页中

在这里插入图片描述

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

到此为止所有数据显示结果就告此一段落了,一方面是没有分页,250条数据太多,用户查找麻烦,有兴趣可以进行分页

也可以显示图片海报等

数据可视化最基本的是列表的方式,图片其实直接加上<img>标签并设置宽高就能了

(6)Movie.html

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta content="width=device-width, initial-scale=1.0" name="viewport">

  <title>豆瓣Top250数据分析</title>
  <meta content="" name="descriptison">
  <meta content="" name="keywords">

  <!-- Favicons -->
  <link href="static/assets/img/favicon.png" rel="icon">
  <link href="static/assets/img/apple-touch-icon.png" rel="apple-touch-icon">

  <!-- Google Fonts -->
  <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Raleway:300,300i,400,400i,600,600i,700,700i,900" rel="stylesheet">

  <!-- Vendor CSS Files -->
  <link href="static/assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
  <link href="static/assets/vendor/icofont/icofont.min.css" rel="stylesheet">
  <link href="static/assets/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
  <link href="static/assets/vendor/animate.css/animate.min.css" rel="stylesheet">
  <link href="static/assets/vendor/venobox/venobox.css" rel="stylesheet">
  <link href="static/assets/vendor/aos/aos.css" rel="stylesheet">

  <!-- Template Main CSS File -->
  <link href="static/assets/css/style.css" rel="stylesheet">

</head>

<body>
    <!-- ======= top 被删 ======= -->
  <!-- ======= Header ======= -->
  <header id="header">
    <div class="container">

      <div class="logo float-left">
        <h1 class="text-light"><a href="index.html"><span>Mamba</span></a></h1>
        <!-- Uncomment below if you prefer to use an image logo -->
        <!-- <a href="index.html"><img src="static/assets/img/logo.png" alt="" class="img-fluid"></a>-->
      </div>

      <nav class="nav-menu float-right d-none d-lg-block">
        <ul>
          <li class="active"><a href="/index">首页 <i class="la la-angle-down"></i></a></li>
          <li><a href="/movie">电影</a></li>
          <li><a href="/score">评分</a></li>
          <li><a href="/word">词云</a></li>
          <li><a href="/team">团队</a></li>
         <!-- ======= drop down和contact us被删 ======= -->
        </ul>
      </nav><!-- .nav-menu -->

    </div>
  </header><!-- End Header -->

    <!-- ======= Our Team Section ======= -->
    <section id="team" class="team">
      <div class="container">

        <div class="section-title">
          <h2>豆瓣电影Top250电影名单</h2>
        </div>

        <!-- ======= Counts Section ======= -->
    <section class="counts section-bg">
      <div class="container">

          <table class="table table-striped">       <!-- 如果使用border=“1”太难看,使用table-striped斑马线格式就好看一些了 -->
              <tr>
                  <td>排名</td>
                  <td>电影中文名称</td>
                  <td>电影外国名称</td>
                  <td>评分</td>
                  <td>评价人数</td>
                  <td>一句话概述</td>
                  <td>其他信息</td>
              </tr>

              {% for movie in movies %}         <!-- 在上下括号中间的进行循环 -->
                <tr>
                  <td>{{ movie[0] }}</td>
                  <td>
                      <a href="{{ movie[1] }}" target="_blank">         <!-- 加入名称超链接,target是新建标签页打开链接 -->
                      {{ movie[3] }}
                      </a>
                  </td>
                  <td>{{ movie[4] }}</td>
                  <td>{{ movie[5] }}</td>
                  <td>{{ movie[6] }}</td>
                  <td>{{ movie[7] }}</td>
                  <td>{{ movie[8] }}</td>
              </tr>
              {% endfor %}

          </table>

      </div>
    </section><!-- End Counts Section -->

      </div>
    </section><!-- End Our Team Section -->


  <!-- ======= Footer ======= -->
  <footer id="footer">

    <div class="container">
      <div class="copyright">
        &copy; Copyright <strong><span>Mamba</span></strong>. All Rights Reserved
      </div>
    
    </div>
  </footer><!-- End Footer -->

  <a href="#" class="back-to-top"><i class="icofont-simple-up"></i></a>

  <!-- Vendor JS Files -->
  <script src="static/assets/vendor/jquery/jquery.min.js"></script>
  <script src="static/assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
  <script src="static/assets/vendor/jquery.easing/jquery.easing.min.js"></script>
  <script src="static/assets/vendor/php-email-form/validate.js"></script>
  <script src="static/assets/vendor/jquery-sticky/jquery.sticky.js"></script>
  <script src="static/assets/vendor/venobox/venobox.min.js"></script>
  <script src="static/assets/vendor/waypoints/jquery.waypoints.min.js"></script>
  <script src="static/assets/vendor/counterup/counterup.min.js"></script>
  <script src="static/assets/vendor/isotope-layout/isotope.pkgd.min.js"></script>
  <script src="static/assets/vendor/aos/aos.js"></script>

  <!-- Template Main JS File -->
  <script src="static/assets/js/main.js"></script>

</body>

</html>
ePage是新一代的可视化1:1网及App设计利器,与主流的VS以及eclipse是一个层面的开发工具。ePage在兼具高效的研发生产速度的同时还保证了开放性,方便将传统的JS代码移植到新的系统中。 ◆ 网开发环境真正做到了1:1的所见即所得,目前主流的开发平台eclipse,vs,dreamweaver等都无法做到这一点。 ◆ 对代码和面的树状统筹管理,可是轻松的实现2000+面的超大型项目设计开发和维护。 ◆ “事务集”概念的提出,在网设计领域首次利用JS统一了前后端代码,同时对事务集进行统筹管理,应付前后台代码衔接轻松自如。 ◆ 兼容各种型号手机及浏览器统一解决方案,从可视化开发环境到部署发布一键完成 ◆ 前后台代码统一集成化设计,前后台代码全部统一采用JavascriptV8,开发者无需使用多种编程语言进行前后台设计 ◆ 高度集成化的同时提供了开放可扩展的开发环境,代码继承性和可维护性极强 ◆ 开发神速,极大的降低了企业开发App以及互联网应用的投入 ◆ 高稳定性,即使入门级水平的程序员也可以写出高质量高稳定性的应用系统 ePage是通用面设计工具领域的一次重大革新,比传统设计平台开发效率提高10倍以上,同时面质量和稳定性维护性也得到了极大提高。 本下载包为绿色免费版,展开即可运行,内含: 1. ePage集成开发环境 2. eEngine网服务器系统,包含32位及64位版本 3. 范例及美术资源 4. 一个完整的小型电商系统源代码 5. 皮肤资源 6. 日志查看器软件 7. 用户使用指南,编程参考手册等文档 ePage应用领域:网设计,网开发,后台设计,App设计,网站开发,网站设计,网开发工具,可视化开发工具,面设计开发工具 0.41版本更新日志 2017年8月10日: ePage:增加代码提示器的显示宽度和滚动条,完善了代码提示器js代码的帮助内容 2017年8月10日: ePage:代码自动完成功能,自动填写代码后光标不能驻留在第一个括号出现的位置 2017年8月10日: ePage:代码编辑器增加(){}[]代码部分的自动标记功能,方便程序员匹配括号 2017年8月9日: 版本升至V0.41 2017年8月9日: ePage:代码编辑器滚动过程中强制显示光标 2017年8月9日: ePage:代码提示在注释区域和字符串区域内不显示 2017年8月9日: ePage:代码编辑器backspace按键增加自动缩进功能 2017年8月9日: ePage:代码编辑器对于tab的处理,改为屏幕4格的栅格对位模式 2017年8月8日: ePage:代码编辑器增加Ctrl+Home跳到代码头部,Ctrl+End跳到代码尾部功能 2017年8月8日: ePage:修改了代码提示器显示在屏幕下方超界问题。优化了代码提示器右侧提示窗口的格式。 2017年8月8日: ePage:增加代码首字母的代码提示功能,并增强了代码自动完成的代码复杂度 2017年8月8日: ePage:优化了代码编辑器右侧垂直滚动条拖动动画 2017年8月7日: ePage:全面优化的代码编辑器的滚动效果 2017年8月7日: ePage:代码标记位置的背景颜色改浅了一些 2017年8月7日: ePage:集成界面增加3个快捷图标;全文标记当前光标位置处字符串功能增加全字匹配以及无搜索结果不标记功能。 2017年8月6日: ePage:代码编辑器增加功能:全文标记当前光标处的文字 2017年8月6日: ePage:增加ctrl+/智能代码注释和删除注释功能 2017年8月5日: ePage:ctrl+/代码注释功能 2017年8月4日: ePage:初步完成单代码的搜索和替换功能 2017年8月2日: ePage:完成replace all功能 2017年8月2日: ePage:搜索增加全字匹配功能 2017年7月30日: ePage: codeInsight功能在前方有汉字的情况下工作不正常 2017年7月27日: eEngine:layout.heavy属性在出现浮点数的情况下系统处理异常 2017年7月27日: ePage,eEngine:增加ee.getQueryString函数 2017年7月25日: eEngine: 增加把note字段内容写入网控件的.panel属性中 2017年7月21日: ePage:优化了代码编辑器的效率,界面更流畅 2017年7月20日: eEngine:bug某些情况下跨域访问会被禁止 2017年7月14日: ePage:增加代码签名 2017年7月13日: ePage:codeInsight功能改造完成,版本升级为V0.39 2017年7月12日: ePage:codeIns
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾名招财

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值