大数据毕业设计 Python旅游景点数据大屏 爬虫 实时监控系统 旅游数据可视化 vue 旅游实时监控 计算机毕业设计(源码)✅

博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌
> 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与我联系了。🍅

点击查看作者主页,了解更多项目!

🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅

1、毕业设计:2025年计算机专业毕业设计选题汇总(建议收藏)✅

2、大数据毕业设计:2025年选题大全 深度学习 python语言 JAVA语言 hadoop和spark(建议收藏)✅

1、项目介绍

1、关键技术

  • 前端: Vue + Echarts + BaiduMap + Axios

  • 后端: Flask + SQLAlchemy

  • 爬虫: python + bs4

-Vue、Echarts、 Axios、 Baidu地图API(HeatMap热力图)

Flask、 SQLAlchemy 、Marshmallow、BeautifulSoup4

2、系统功能

可视化:

(1)数据可视化,实现中国地图、动态柱状图、饼图、环图、漏斗图等方式对数据库数据分析

(2)百度热力图展示景点销售数据

爬虫: 去哪儿网热门景点数据爬虫,解析后存储入mysql数据库中

实现功能

(1)爬虫:爬取去哪儿网的热门景点数据,存储在MySQL数据库中

(2)Flask后端:对MySQL数据库中存储的数据进行提取,对前端提供接口

(3)可视化1: 实现景点数据的多维度分析后使用Echarts来进行可视化

(4)可视化2: 实现百度热力图的展示

2、项目界面

(1)旅游数据分析大屏

在这里插入图片描述

(2)热力图分析

在这里插入图片描述

(3)数据采集

在这里插入图片描述

(4)数据表
在这里插入图片描述

3、项目说明

1、系统功能

可视化:

(1)数据可视化,实现中国地图、动态柱状图、饼图、环图、漏斗图等方式对数据库数据分析

(2)百度热力图展示景点销售数据

爬虫: 去哪儿网热门景点数据爬虫,解析后存储入mysql数据库中

实现功能

(1)爬虫:爬取去哪儿网的热门景点数据,存储在MySQL数据库中

(2)Flask后端:对MySQL数据库中存储的数据进行提取,对前端提供接口

(3)可视化1: 实现景点数据的多维度分析后使用Echarts来进行可视化

(4)可视化2: 实现百度热力图的展示

2 、关键技术

  • 前端: Vue + Echarts + BaiduMap + Axios

  • 后端: Flask + SQLAlchemy

  • 爬虫: python + bs4

-Vue、Echarts、 Axios、 Baidu地图API(HeatMap热力图)

Flask、 SQLAlchemy 、Marshmallow、BeautifulSoup4

4、核心代码


from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
from sqlalchemy.sql import func

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@localhost/baidumap_tour'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['JSON_AS_ASCII'] = False

db = SQLAlchemy(app)
ma = Marshmallow(app)

class Tour(db.Model):
    __tablename__ = 'tb_tour'  # 表名
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(500))
    grade = db.Column(db.String(20))
    address = db.Column(db.String(500))
    intro = db.Column(db.String(500))
    hot = db.Column(db.DECIMAL)
    price = db.Column(db.DECIMAL)
    msold = db.Column(db.Integer)
    lng = db.Column(db.DECIMAL)
    lat = db.Column(db.DECIMAL)
    img = db.Column(db.String(500))
    province = db.Column(db.String(90))
    city = db.Column(db.String(90))
    district = db.Column(db.String(90))

    def __init__(self, name, grade, address, intro, hot, price, msold, lng, lat, img, province, city, district):
        self.name = name
        self.grade = grade
        self.address = address
        self.intro = intro
        self.hot = hot
        self.price = price
        self.msold = msold
        self.lng = lng
        self.lat = lat
        self.img = img
        self.province = province
        self.city = city
        self.district = district

class TaskSchema(ma.Schema):
    class Meta:
        fields = ('name', 'grade')

task_schema = TaskSchema()
tasks_schema = TaskSchema(many=True)

class ChartSchema(ma.Schema):
    class Meta:
        fields = ('city', 'lng', 'lat')

chart_schema = ChartSchema()
chart_schema = ChartSchema(many=True)

class RankSchema(ma.Schema):
    class Meta:
        fields = ('name', 'value')

rank_schema = RankSchema()
rank_schema = RankSchema(many=True)

class HotSchema(ma.Schema):
    class Meta:
        fields = ('lng', 'lat', 'count')

hot_schema = HotSchema()
hot_schema = HotSchema(many=True)

@app.route('/')
def hello_world():  # put application's code here
    result = db.session.query(Tour.city, func.count('*').label('value')).group_by(Tour.city).filter(Tour.city != '').all()[:5]
    return jsonify(chart_schema.dump(result)), 200

@app.route('/hot_tour')
def hot_tour_site():  # put application's code here
    result = db.session.query(Tour.city, Tour.lng, Tour.lat).order_by(Tour.msold.desc()).all()[:30]
    # print(result)
    chart_schema.dump(result)
    return jsonify(chart_schema.dump(result))

@app.route('/city_rank')
def city_rank():  # put application's code here
    result = db.session.query(Tour.city.label("name"), func.sum(Tour.msold).label('value')).group_by(Tour.city).filter(Tour.city != '').all()[:20]
    # print(result)
    rank_schema.dump(result)
    return jsonify(rank_schema.dump(result))

@app.route('/tour_rank')
def tour_rank():  # put application's code here
    result = db.session.query(Tour.name, func.sum(Tour.msold).label('value')).group_by(Tour.name).filter(Tour.city != '').all()[:20]
    # print(result)
    rank_schema.dump(result)
    return jsonify(rank_schema.dump(result))

@app.route('/province_rank', methods=['POST'])
def province_rank():  # put application's code here
    province = request.json['province']
    result = db.session.query(Tour.name, func.sum(Tour.msold).label('value')).group_by(Tour.name).\
                filter(Tour.province == province).all()[:10]
    # result2 = db.session.query(Tour.name, func.sum(Tour.msold).label('value')).group_by(Tour.name). \
    #              filter(Tour.province == '海南').all()[:10]
    # result3 = db.session.query(Tour.name, func.sum(Tour.msold).label('value')).group_by(Tour.name). \
    #              filter(Tour.province == '上海').all()[:10]
    return jsonify(rank_schema.dump(result))

@app.route('/district_rank')
def district_rank():  # put application's code here
    result = db.session.query(Tour.district.label('name'), func.sum(Tour.msold).label('value')).group_by(Tour.district).\
                filter(Tour.district != '').order_by(func.sum(Tour.msold)).all()[:10]
    return jsonify(rank_schema.dump(result))

@app.route('/hotPlaceData')
def hotPlaceData():  # put application's code here
    result = db.session.query( Tour.lng, Tour.lat, Tour.msold.label('count')).order_by(Tour.msold.desc()).all()[:30]
    # print(result)
    return jsonify(hot_schema.dump(result)
)

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



5、源码获取方式

🍅由于篇幅限制,获取完整文章或源码、代做项目的,查看【用户名】、【专栏名称】、就可以找到我啦🍅

感兴趣的可以先收藏起来,点赞、关注不迷路,查看下方👇🏻👇🏻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值