赞
踩
毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏)
毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人 。
技术栈:
Python语言、Flask后端框架、 bootstrap前端框架 、 MySQL数据库 、Echarts可视化大屏、 51job招聘网站数据
1、招聘数据可视化大屏
2、招聘数据概况
3、福利词云图
4、柱状图分析
5、饼状图分析
6、岗位发布时间图
7、招聘数据
8、职位介绍
Flask框架是一种轻量级的Python web框架,被广泛应用于Web开发领域。前程无忧是中国领先的人力资源服务提供商,招聘数据可视化大屏系统是基于Flask框架开发的一种数据展示平台。
该系统通过收集前程无忧的招聘数据,并结合数据可视化技术,将数据以直观的方式展示在大屏上。这样的系统对于企业来说非常有价值,因为它可以帮助企业更好地了解招聘市场的状况,以及行业的人才需求和趋势。
数据可视化大屏系统的主要功能包括:
数据收集和处理:系统会定期从前程无忧的数据库中获取最新的招聘数据,并进行数据清洗和处理,确保数据的准确性和完整性。
数据可视化:系统会将招聘数据以图表、表格等形式展示在大屏上,用户可以直观地了解各种招聘指标的变化趋势,比如职位数量、薪资水平、行业分布等。同时,系统还支持用户自定义的数据可视化需求,可以根据不同的业务需求进行定制化展示。
实时更新:系统会定时更新数据,确保展示的数据与实际情况保持同步。用户可以随时查看最新的招聘数据,以便做出更准确的决策。
多维度分析:系统支持多维度的数据分析,用户可以通过选择不同的维度进行数据筛选和对比,以便更深入地了解市场情况和行业趋势。
总而言之,Flask框架前程无忧招聘数据可视化大屏系统是一种利用数据可视化技术展示前程无忧招聘数据的平台,帮助企业更好地了解市场和行业的招聘动态,以便做出更明智的决策。
import SQLUtils from demoAgent import settingAgent import jieba from flask import Flask, render_template, request import Setting from flask import jsonify import recruitPage from geopy.geocoders import Nominatim geolocator = Nominatim(user_agent='aaa515') app = Flask(__name__) db, all_table = recruitPage.create_mysql_ORM(app=app) # 数据处理 jieba.setLogLevel(jieba.logging.INFO) app_Agent = settingAgent() app_data = app_Agent.init_flask() con_sql = app_Agent.py_sql() def get_sql_data(sql_ment): con_sql.ping(reconnect=True) mysql = con_sql.cursor() data = [] for s in sql_ment: mysql.execute(s) datas = mysql.fetchall() data.append(datas) mysql.close() return data def set_salary(tuple): salary_10 = 0 salary_20 = 0 salary_30 = 0 salary_40 = 0 salary_50 = 0 for i in tuple: if int(i[1].split("·")[0]) <= 10: salary_10 += 1 if 10 < int(i[1].split("·")[0]) <= 20: salary_20 += 1 if 20 < int(i[1].split("·")[0]) <= 30: salary_30 += 1 if 30 < int(i[1].split("·")[0]) <= 40: salary_40 += 1 if int(i[1].split("·")[0]) >= 50: salary_50 += 1 data_dict = { "10k以下": salary_10, "10k-20k": salary_20, "20k-30k": salary_30, "30k-40k": salary_40, "50k以上": salary_50, } data = [ {"name": "10k以下", "value": salary_10}, {"name": "10k-20k", "value": salary_20}, {"name": "20k-30k", "value": salary_30}, {"name": "30k-40k", "value": salary_40}, {"name": "50k以上", "value": salary_50}, ] return data def radar_edu(tuple): data = [] for i in tuple: data.append({"name": i[0], "value": i[1]}) return data def map(tuple): data = [] for i in tuple: data.append({"name": i[0], "value": i[1]}) return data def word_cloud(tuple): data_srt = "" for s in tuple: data_srt = data_srt + s[1] words = jieba.lcut(data_srt) counts = {} for word in words: if len(word) == 1: continue else: counts[word] = counts.get(word, 0) + 1 items = list(counts.items()) # print(items) # 列表排序sort(reverse=True 降序,可迭代列表元素,key代表数据(列表数据)) items.sort(key=lambda x: x[1], reverse=True) # print(items) data = [] for w in items: if w[1] >= 1000: data.append( {"name": w[0], "value": w[1]} ) return data def count_desc(tuple): data = [] for i in range(0, 7): data.append(tuple[i][1]) return data def sount_desc_salary(tuple): data = [] for i in range(0, 7): # print(tuple[i]) data.append(tuple[i][2]) # print(data) return data def all_data(tuple): return tuple[0][1] def jin_wei_data(tuple): data = [] for i in tuple: temp = [] temp.append(i[1]) temp.append(i[2]) data.append({i[0]: temp}) return data def data_names(tuple): data = [] for d in tuple: data.append({"name": d[0], "value": d[1]}) return data def apiAgent(sql_index): data = get_sql_data(Setting.bigList[sql_index]) data_map_data = [] for j in jin_wei_data(data[12]): for key in j.keys(): for m in map(data[13]): if m["name"] == key: temp_list = [] for x in j[key]: temp_list.append(x) temp_list.append(m["value"]) data_map_data.append({ "name": m["name"], "value": temp_list }) data_dict = { "data_name": data_names(data[0]), "data_salary": set_salary(data[1]), "data_edu": radar_edu(data[2]), "data_bar": map(data[3]), "data_bar_workYear": map(data[4]), "data_word_cloud": word_cloud(data[5]), "data_name_desc": count_desc(data[6]), "data_salary_desc": sount_desc_salary(data[7]), "data_raozhi_desc": sount_desc_salary(data[8]), "data_jinyan_desc": sount_desc_salary(data[9]), "data_edu_desc": sount_desc_salary(data[10]), "data_all_data": all_data(data[11]), "all_map_data": data_map_data, } return data_dict # 首页 # 职位数 @app.route("/data_all_data_python") def data_all_data(): return jsonify({"data": data_dict["data_all_data"]}) @app.route("/data_all_data_web") def data_all_data_web(): return jsonify({"data": data_dict_web["data_all_data"]}) @app.route("/data_all_data_java") def data_all_data_java(): return jsonify({"data": data_dict_java["data_all_data"]}) @app.route("/data_all_data_C") def data_all_data_C(): return jsonify({"data": data_dict_C["data_all_data"]}) @app.route("/data_all_data_PHP") def data_all_data_PHP(): return jsonify({"data": data_dict_PHP["data_all_data"]}) @app.route('/home') def home(): count=data_dict["data_all_data"]+data_dict_web["data_all_data"]+data_dict_java["data_all_data"]+data_dict_C["data_all_data"]+data_dict_PHP["data_all_data"] return render_template("/home.html", count=count,python=data_dict["data_all_data"],web=data_dict_web["data_all_data"],java=data_dict_java["data_all_data"],C=data_dict_C["data_all_data"],PHP=data_dict_PHP["data_all_data"]) @app.route("/data_data_desc") def data_data_desc(): d = SQLUtils.date_data()[2] data = [d.get('大数据开发工程师'), d.get('web前端开发工程师'), d.get('C++开发工程师'), d.get('PHP开发工程师'), d.get('java开发工程师'), d.get('month')] return jsonify({"data": data}) @app.route("/data_name_desc_data") def data_name_desc_data(): return jsonify({"data": data_dict["data_name_desc"]}) # python学历要求 @app.route("/data_edu_data") def data_edu_data(): return jsonify({"data": data_dict["data_edu"]}) @app.route("/data_edu") def data_edu(): return render_template("/bar1.html") #获取不同职位的岗位数量 @app.route('/job_count') def job_count(): con_sql1 = app_Agent.py_sql() c = con_sql1.cursor() c.execute(Setting.jobCount) # con_sql.commit() res = c.fetchall() c.close() con_sql1.close() job = [] count = [] for r in res: job.append(r[1]) count.append(str(r[0])) resdata = { 'job': job, 'count': count } return jsonify(resdata) #现地区岗位排行 @app.route("/location") def location(): # print('执行location') data = [] dic = {} list_name = ['select * from name_db where id >= 1'] location_name = get_sql_data(list_name) for i in location_name: for n in i: location = n[5] if dic.get(location) == None: dic[location] = 1 else: dic[location] = dic[location] + 1 # print(dic) for k,v in dic.items(): if k.__contains__('市'): k = k.replace('市', '') elif k.__contains__('省'): k = k.replace('省', '') elif k.__contains__('自治区'): k = k.replace('自治区', '') if k.__contains__('维吾尔'): k = k.replace('维吾尔', '') elif k.__contains__('回族'): k = k.replace('回族', '') elif k.__contains__('特别行政区'): k = k.replace('特别行政区', '') d = { 'name': k, 'value': v } data.append(d) data = sorted(data, key=lambda data: data['value'], reverse=True) data = data[:15] return jsonify({"data": data}) # python需求词云 @app.route("/word_cloud_python_data") def word_python_data(): return jsonify({"data": data_dict["data_word_cloud"]}) # 面板大图 @app.route('/sct') def sct(): return render_template("/sct.html") # 大地图 @app.route("/locations") def locations(): # print('执行location') data = [] dic = {} list_name = ['select * from name_db where id >= 1'] location_name = get_sql_data(list_name) for i in location_name: for n in i: location = n[5] if dic.get(location) == None: dic[location] = 1 else: dic[location] = dic[location] + 1 # print(dic) for k,v in dic.items(): if k.__contains__('市'): k = k.replace('市', '') elif k.__contains__('省'): k = k.replace('省', '') elif k.__contains__('自治区'): k = k.replace('自治区', '') if k.__contains__('维吾尔'): k = k.replace('维吾尔', '') elif k.__contains__('回族'): k = k.replace('回族', '') elif k.__contains__('特别行政区'): k = k.replace('特别行政区', '') d = { 'name': k, 'value': v } data.append(d) data = sorted(data, key=lambda data: data['value'], reverse=True) return jsonify({"data": data}) # 就业人数 @app.route("/data_name_desc") def data_name_desc(): return render_template("bar2.html") # 地区词云 @app.route("/word_cloud") def word_region(): return render_template("wordcloud2.html") # 职位数量 @app.route("/job_data", methods=["GET"]) def job_data(): key = SQLUtils.job_data() return jsonify({"k": key}) @app.route("/data_name") def data_name(): return jsonify({"data": data_dict["data_name"]}) @app.route("/data_name_web") def data_name_web(): return jsonify({"data": data_dict_web["data_name"]}) if __name__ == '__main__': # app.run(debug=True) app.run()
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/769561
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。