【大数据实战项目四】MongoES数据储存及利用Flask进行结果展示

【大数据实战项目四】MongoES数据储存及利用Flask进行结果展示,第1张

【大数据实战项目四】Mongo/ES数据储存及利用Flask进行结果展示

Mongo/ES数据储存及利用Flask进行结果展示
  • 5 数据储存及结果展示
    • 5.1 将数据保存到MongoDB
    • 5.2 利用Flash进行数据结果展示
      • 5.2.1 将数据展示到指定页面
      • 5.2.2 数据筛选显示
      • 5.2.3 美化数据输出
      • 5.2.4 多数据分页显示
      • 5.2.5 制作具有查询功能的页面

手动反爬虫,禁止转载: 原博地址 https://blog.csdn.net/lys_828/article/details/121283758(CSDN博主:Be_melting)

 知识梳理不易,请尊重劳动成果,文章仅发布在CSDN网站上,在其他网站看到该博文均属于未经作者授权的恶意爬取信息
5 数据储存及结果展示

在收集了航班数据之后,我们进行了基础的处理,去除了不需要的部分,对空值进行了处理,现在我们需要把数据存储到NoSQL的数据库中。

存储的这一步,我们使用之前准备的MongoDB和ES作为存储服务器,这样后面就可以利用Flask应用服务器对数据进行展示处理,该部分属于下图中框中的内容。

5.1 将数据保存到MongoDB

重新创建一个文件,命名为example03.py,然后打开Compass软件,连接上数据库(如果没有连接数据库,最后写入的时候会报写入网络错误)。

接着在创建的文件中重现加载Spark的环境和激活之前自定义的pymogo_spark程序,就能够直接使用saveToMongoDB()的方法直接将数据写入数据库,但是需要注意的是要先将数据换成为字典的格式,代码及运行结果如下。

最后刷新一下Compass页面,检查其中的数据库情况,对应界面如下,证明成功写入数据到数据库。

5.2 利用Flash进行数据结果展示 5.2.1 将数据展示到指定页面

在step1文件夹下创建一个web文件夹,里面包含两个固定的文件夹为static和templates,然后把boostrap相关的4个文件移动到static文件夹下,在templates文件夹下创建一个index.html文件。接着就是在web文件夹下创建一个on_time01.py文件,将3.4部分介绍利用Flask搭建网站的代码直接挪用,然后添加如下代码。

@app.route('/on_time')
def on_time():
    flight = client['example'].on_time.find_one()
    return json_util.dumps(flight)

程序执行后,在浏览器端的网址路径下添加/on_time回车后,就可以输出如下内容。(利用Flask很快速就将数据从Mongo DB中展示到网页上)

5.2.2 数据筛选显示

按照运营商、飞行航班、飞行时间字段进行筛选显示,丰富on_time()函数中的内容如下。

@app.route('/on_time')
def on_time():
    carrier = request.args.get('Carrier')
    flight_date = request.args.get('FlightDate')
    flight_num = request.args.get('FlightNum')

    # print (carrier,flight_date,flight_num)

    flight = client['example'].on_time.find_one(
        {
            'Carrier': carrier,
            'FlightDate': flight_date,
            'FlightNum': flight_num
        }
    )
    return json_util.dumps(flight)

Mongo DB中也可以设置字段的索引,从而来大幅度的提高查询速度,比如就拿上面介绍的三个字段进行索引的创建。点击首页Indexes选项卡,然后按照如下进行设置,添加完索引字段后,点击右下角的CREATE INDEX按钮,程序就会创建索引。

创建完毕后,重新运行on_time01.py后,指定一个查询条件,进行查询,比如查询网址:http://127.0.0.1:5000/on_time?Carrier=US&FlightDate=2015-05-26&FlightNum=2174,输出结果如下。(成功完成数据的筛序显示)

5.2.3 美化数据输出

上面数据的输出就是单纯的把结果展示出来,没有美感,可以利用boostrap进行页面的美化。之所以选择使用boostrap,就是因为不需要自己了解太多的前端技术,直接把示例样本的代码部分copy过来就可以直接使用,比如在index.html文件中添加如下代码。




    
    大数据分析项目
    
    
    
    




    
    
        
            航班数据分析系统					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5479726.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存