赞
踩
博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌
毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏)
毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总
Python语言、MySQL数据库、Django框架
selenium爬虫框架、携程网旅游数据、HTML
(1)旅游数据大屏
(2)旅游分析系统首页
(3)旅游数据词云分析
(4)评论最多景区分析
(5)评分最高Top15
(6)景区级别扇形图
(7)后台数据管理
(8)数据采集界面
Django携程旅游数据采集分析可视化系统是一个基于Django框架开发的旅游数据采集、分析和可视化的系统。该系统旨在帮助用户从携程网站上获取旅游相关的数据,并对这些数据进行分析和可视化展示。
该系统的主要功能包括数据采集、数据存储、数据分析和数据可视化。首先,系统可以通过爬虫技术从携程网站上抓取旅游相关的数据,包括酒店信息、航班信息、景点信息等。然后,系统将这些数据存储在数据库中,以便后续的分析和展示。
系统还提供了强大的数据分析功能,用户可以对采集到的数据进行各种统计和分析,例如热门景点排行、酒店价格趋势、航班延误情况等。用户可以根据自己的需求选择不同的分析方法和指标,以便更好地了解旅游市场的情况。
最后,系统通过可视化的方式将分析结果展示给用户。用户可以通过图表、地图等形式直观地了解数据的情况,从而更好地做出决策。同时,系统还支持用户自定义报表和图表,以满足个性化的需求。
总之,Django携程旅游数据采集分析可视化系统是一个功能强大、操作简便的系统,可以帮助用户获取旅游数据、进行数据分析,并通过可视化展示帮助用户做出更明智的决策,同时避免可能在中国是敏感的内容。
from django.shortcuts import render, redirect from lvyou import models from django.http import JsonResponse, HttpResponse from django.db.models import Q def login(request): """登录函数""" if request.method == "POST": user = request.POST.get('user') pass_word = request.POST.get('password') print('user------>', user) users_list = list(models.UserList.objects.all().values("user_id")) users_id = [x['user_id'] for x in users_list] print(users_id) # print(students_num) ret = models.UserList.objects.filter(user_id=user, pass_word=pass_word) if user not in users_id: return JsonResponse({'code': 1, 'msg': '该账号不存在!'}) elif ret: # 有此用户 -->> 跳转到首页 # 登录成功后,将用户名和昵称保存到session 中, request.session['user_id'] = user user_obj = ret.last() user_name = user_obj.user_name request.session['user_name'] = user_name return JsonResponse({'code': 0, 'msg': '登录成功!'}) else: return JsonResponse({'code': 1, 'msg': '密码错误!'}) else: return render(request, "login.html") def register(request): """注册函数""" if request.method == "POST": user = request.POST.get('user') pass_word = request.POST.get('password') user_name = request.POST.get('user_name') users_list = list(models.UserList.objects.all().values("user_id")) users_id = [x['user_id'] for x in users_list] if user in users_id: return JsonResponse({'code': 1, 'msg': '该账号已存在!'}) else: models.UserList.objects.create(user_id=user, user_name=user_name, pass_word=pass_word) request.session['user_id'] = user # 设置缓存 request.session['user_name'] = user_name return JsonResponse({'code': 0, 'msg': '注册成功!'}) else: return render(request, "register.html") # 退出(登出) def logout(request): # 1. 将session中的用户名、昵称删除 request.session.flush() # 2. 重定向到 登录界面 return redirect('login') def index(request): return render(request, "index.html", locals()) def get_screen(request): city_list = ['北京市', '天津市', '河北省', '山西省', '内蒙古自治区', '辽宁省', '吉林省', '黑龙江省', '上海市', '江苏省', '浙江省', '安徽省', '福建省', '江西省', '山东省', '河南省', '湖北省', '湖南省', '广东省', '广西壮族自治区', '海南省', '重庆市', '四川省', '贵州省', '云南省', '西藏自治区', '陕西省', '甘肃省', '青海省', '宁夏回族自治区', '新疆维吾尔自治区', '台湾省', '香港特别行政区', '澳门特别行政区', ''] # 等级占比图 level_list = list(set([x[0] for x in list(models.Data.objects.all().values_list('level'))])) l_1_data = [] for level in level_list: l_1_data.append({'name': level, "value": models.Data.objects.filter(level=level).count()}) # print(l_1_data) # 散点图 hot_score = list(models.Data.objects.all().values_list('hot', 'score')) hot_score = [[float(x[0]), float(x[1])] for x in hot_score if x[1] != '0'] hot_score = sorted(hot_score, key=lambda x: x[0]) # print(hot_score) # 处理中间柱形图数据 c_1_data = list(models.Data.objects.all().values_list('name', 'hot').distinct().order_by('-hot'))[0:10] # print(c_1_data) c_1_x = [x[0] for x in c_1_data] c_1_y = [float(x[1]) for x in c_1_data] # 处理地图数据 map_data = [] for x in city_list: map_data.append({'name': x, 'value': models.Data.objects.filter(address__icontains=x[0:2]).count()}) print("map_data------>", map_data) # 评分排行 comment_list = list(models.Data.objects.all().values_list('name', 'comment_count').distinct()) # print(comment_list) comment_list = [[x[0], int(x[1].replace('条点评', ''))] for x in comment_list] comment_list = sorted(comment_list, key=lambda x: x[1], reverse=True)[0:10] r_1_x = [x[0] for x in comment_list] r_1_y = [float(x[1]) for x in comment_list] # 词云图 r_2_data = list(models.Data.objects.all().values_list('name', 'comment_count').distinct()) # print(comment_list) r_2_data = [[x[0], int(x[1].replace('条点评', ''))] for x in r_2_data] r_2_data = [{"name": x[0], "value": x[1]} for x in r_2_data] return render(request, "screen.html", locals()) def welcome(request): """此函数用于处理控制台页面""" all_data = models.Data.objects.all().count() data_5a = models.Data.objects.filter(Q(level__icontains='5A') | Q(name__icontains='5A')).count() data_4a = models.Data.objects.filter(Q(level__icontains='4A') | Q(name__icontains='4A')).count() hot_data = [[x[0], float(x[1])] for x in list(models.Data.objects.all().values_list('name', 'hot').distinct())] hot_data = sorted(hot_data, key=lambda x: x[1], reverse=True)[0] hot_data_name = hot_data[0] hot_data_hot = hot_data[1] city_list = ['北京市', '天津市', '河北省', '山西省', '内蒙古自治区', '辽宁省', '吉林省', '黑龙江省', '上海市', '江苏省', '浙江省', '安徽省', '福建省', '江西省', '山东省', '河南省', '湖北省', '湖南省', '广东省', '广西壮族自治区', '海南省', '重庆市', '四川省', '贵州省', '云南省', '西藏自治区', '陕西省', '甘肃省', '青海省', '宁夏回族自治区', '新疆维吾尔自治区', '台湾省', '香港特别行政区', '澳门特别行政区', ''] # 处理地图数据 map_data = [] for x in city_list: map_data.append({'name': x, 'value': models.Data.objects.filter(address__icontains=x[0:2]).count()}) # print(map_data) return render(request, "welcome.html", locals()) def chart_1(request): level_list = list(set([x[0] for x in list(models.Data.objects.all().values_list('level'))])) l_1_data = [] all_value = 0 for level in level_list: a = models.Data.objects.filter(level=level).count() all_value += a l_1_data.append({'name': level, "value": a}) # print(l_1_data) return render(request, "echarts_1.html", locals()) def chart_2(request): comment_list = list(models.Data.objects.all().values_list('name', 'comment_count').distinct()) # print(comment_list) comment_list = [[x[0], int(x[1].replace('条点评', ''))] for x in comment_list] comment_list = sorted(comment_list, key=lambda x: x[1], reverse=True)[0:5] c_1_data = [{'name': x[0], 'value': x[1]} for x in comment_list] le_data = [x[0] for x in comment_list] return render(request, "echarts_2.html", locals()) def chart_3(request): comment_list = list(models.Data.objects.all().values_list('name', 'hot').distinct()) # print(comment_list) comment_list = [[x[0], float(x[1].replace('条点评', ''))] for x in comment_list] comment_list = sorted(comment_list, key=lambda x: x[1], reverse=True)[0:5] c_1_data = [{'name': x[0], 'value': x[1]} for x in comment_list] le_data = [x[0] for x in comment_list] return render(request, "echarts_3.html", locals()) def chart_4(request): comment_list = list(models.Data.objects.all().values_list('name', 'score').distinct()) # print(comment_list) comment_list = [[x[0], float(x[1].replace('条点评', ''))] for x in comment_list] comment_list = sorted(comment_list, key=lambda x: x[1], reverse=True)[0:15] c_1_data = [{'name': x[0], 'value': x[1]} for x in comment_list] le_data = [x[0] for x in comment_list] return render(request, "echarts_4.html", locals()) def chart_5(request): # 词云图 r_2_data = list(models.Data.objects.all().values_list('name', 'comment_count').distinct()) # print(comment_list) r_2_data = [[x[0], int(x[1].replace('条点评', ''))] for x in r_2_data] r_2_data = [{"name": x[0], "value": x[1]} for x in r_2_data] return render(request, "echarts_5.html", locals())
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/921373
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。