博主介绍✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久选择我们就是选择放心、选择安心毕业✌感兴趣的可以先收藏起来点赞、关注不迷路✌毕业设计2023-2024年计算机毕业设计1000套建议收藏毕业设计2023-2024年最新最全计算机专业毕业设计选题汇总1、项目介绍技术栈python语言 pyspark、 django框架、scrapy框架、vue框架、协同过滤推荐算法、HTML基于用户物品推荐院校、基于用户物品推荐专业阳光高考网—教育部高校招生阳光工程知道平台摘要高三学生经过十二年的寒窗苦读大多数都两耳不闻窗外事一心只为了高考对于刚高考完的考生来讲他们对于自己的未来新生活是一无所知的未来的专业选择、院校选择对于他们来说都是无比的陌生不知道自己本身适合什么专业对未来的专业是否喜爱有兴趣也没有任何规划。对于自己的特长和爱好相匹配的专业更是不知道。他们在高考志愿填报的中大部分都属于蒙眼过河。随着大数据时代的到来推荐系统的应用越来越广泛了包括影视推荐、音乐推荐、新闻推荐等等。但是推荐系统在教育领域内推荐系统的应用是非常少的。高考志愿的填报是众多考生和家长的焦点但是在众多的学校和专业信息的海洋中对自己有用的信息是非常少的。因此本文将推荐系统应用于教育领域帮助考生解决高考志愿填报环节的志愿选择问题所以本系统的开发是十分有意义的。本文利用 bootstrap3HTMLCSS级联样式表的前端开发技术开发设计了高考志愿推荐的Web前端界面。其中包括用户注册、登录界面、院校信息、专业信息和志愿推荐结果展示界面在保证本系统实用性和易用性的同时为用户提供良好的交互体验。 本系统的开发后端采用Python语言和Django框架进行搭建本系统还设计了问卷调查和高校推荐模块通过设计霍兰德职业兴趣测试问卷调查的形式侧面分析出考生的的性格类型为其推荐较适合的专业这也是本系统开发的创新点。【关键词】Python语言高考志愿高校专业推荐系统2、项目界面1高校信息库模块2高校详情页面3高校推荐模块4专业信息库5专业详情页面6开设专业高校7个性化推荐高校8高考信息设置9后台数据管理3、项目说明系统中各个模块的具体实现:1. 数据抓取模块 该模块使用了Scrapy爬虫框架通过访问“阳光高考”网站来抓取大学和专业相关数据。在抓取大学数据时我们将获取学校名称、学校logo、简介、满意度、院系设置、录取规则、食宿条件、设立专业等字段在抓取大学专业数据时我们将获取学历层次、专业代码、所属门类、专业类别、介绍、相近专业、从业方向、统计了毕业生规模以及男女比例等信息。 2. 用户注册登录模块 该模块使用Django框架实现用户的注册和登录功能。在注册时我们要求用户提供用户名、密码等必要信息同时对用户输入进行合法性校验在登录时用户需要输入正确的用户名和密码才能成功登录系统。 3. 后台管理模块 该模块是系统管理员可以对系统中的数据进行管理操作的接口包括大学和专业数据的增删改查。我们使用Django Admin框架实现后台管理功能。管理员登陆后进入后台管理界面就可以对系统中的数据进行增删改查的操作。 4. 高校信息查询模块 该模块是实现用户在高校名称关键词、高校所在地、学历层次等信息筛选出符合条件的国内高校的功能该页面以卡片形式展示了高校信息。我们使用VueElement-Plus框架来实现前端页面渲染、数据展示和分页组件使用Django框架来实现后端API接口。我们将20条数据为一页以此来降低后端压力。 5. 专业信息查询模块 该模块是用户可以根据专业分类以及关键词等信息筛选出符合条件的大学专业数据的功能该页面以表格形式展示了专业信息。我们同样使用VueElement-Plus框架来实现前端页面渲染、数据展示和分页组件使用Django框架来实现后端API接口。 6. 个性化推荐高校和专业模块 该模块是根据用户在高考志愿填报模块所填写的预测成绩、喜欢的专业、喜欢的学校以及想去的省份所在地等信息从数据库中查找出符合用户条件的高校以及专业数据再个性化地推荐给用户的功能。我们使用基于物品的协同过滤算法实现系统的推荐功能并使用Django框架实现后端API接口。 7. 高校详情模块 该模块是当用户查看某高校详情时可以看到该高校的多种信息比如院校简介、学校领导、周边环境、通讯地址、院校设置、重点实验室、重点学科、师资力量、录取条件、食宿条件等还可以查看该学校设立的所有专业数据。该模块同样使用VueElement-Plus框架实现前端页面渲染、数据展示使用Django框架实现后端API接口并使用基于物品的协同过滤算法给用户推荐相似的高校数据。 8. 专业详情模块 该模块是当用户查看某专业的详情时可以看到该专业的多种信息比如学历层次、专业代码、所属门类专业分类、专业介绍、统计信息包括该专业的毕业生规模和男女比例、相似专业、毕业后的从业方向。该模块同样使用VueElement-Plus框架实现前端页面渲染、数据展示使用Django框架实现后端API接口并使用基于物品的协同过滤算法给用户推荐相似的专业数据。技术及功能关键词:技术栈python语言 pyspark、 django框架、scrapy框架、vue框架、协同过滤推荐算法、HTML基于用户物品推荐院校、基于用户物品推荐专业阳光高考网—教育部高校招生阳光工程知道平台通过scrapy爬虫框架抓取“阳光高考”网站上的大学数据(包括了学校名称、学校logo、简介、满意度、院系设置、录取规则、食宿条件、设立专业等字段)以及大学的专业(包括了学历层次、专业代码、所属门类、专业类别、介绍、相近专业、从业方向、统计了毕业生规模以及男女比例等信息)数据 前台用户通过登陆注册后进入系统 管理员可在后台管理所有抓取到的大学及大学专业数据以及用户填写的高考志愿意向数据 高校信息查询模块用户可以根据高校名称关键词、高校所在地、学历层次等信息筛选出符合条件的国内高校该页面以卡片形式展示了高校信息其中包括了高校名称、高校LOGO、所在地、学历层次、主管部门以及高校评分等数据分页组件以20条数据为一页可大大降低后端压力 专业信息查询模块用户可以根据专业分类以及关键词等信息筛选出符合条件的大学专业数据该页面以表格形式展示了专业信息其中包括专业名称、专业所属门类、专业所属类以及专业满意度等信息 个性化推荐高校和专业模块这是根据用户在高考志愿填报模块所填写的预测成绩、喜欢的专业、喜欢的学校以及想去的省份所在地等信息在数据库中查找出符合用户条件的高校以及专业数据再个性化地推荐给用户需要注意的是当用户第一次访问该模块时系统会检测用户是否已填写志愿如果没有必须填写后才能够推荐 当用户查看某高校详情时可以看到该高校的多种信息比如院校简介、学校领导、周边环境、通讯地址、院校设置、重点实验室、重点学科、师资力量、录取条件、食宿条件等还可以查看该学校设立的所有专业数据同时系统会依据基于物品的协同过滤算法给用户推荐相似的高校数据 当用户查看某专业的详情时可以看到该专业的多种信息比如学历层次、专业代码、所属门类专业分类、专业介绍、统计信息包括该专业的毕业生规模和男女比例、相似专业、毕业后的从业方向。也可以看到该专业有哪些高校设立同时系统会依据基于物品的协同过滤算法给用户推荐相似的专业数据4、核心代码from.modelsimport*fromdjango.http.responseimportHttpResponsefromdjango.shortcutsimportrenderfromdjango.httpimportJsonResponsefromdatetimeimportdatetime,timefromdjango.core.paginatorimportPaginatorfromdjango.db.modelsimportQfromapp.appsimportAppConfigfromauth.modelsimportUserInfodefto_dict(l,excludetuple()):# 将数据库模型 变为 字典数据 的工具类函数deftransform(v):ifisinstance(v,datetime):returnv.strftime(%Y-%m-%d %H:%M:%S)returnvdef_todict(obj):j{k:transform(v)fork,vinobj.__dict__.items()ifnotk.startswith(_)andknotinexclude}returnjreturn[_todict(i)foriinl]defget_college_list(request):bodyrequest.json pagesizebody.get(pagesize,10)pagebody.get(page,1)exclude_fields[pagesize,page,total]query{k:vfork,vinbody.items()ifknotinexclude_fieldsandv}qQ(**query)objsCollege.objects.filter(q).order_by(id)paginatorPaginator(objs,pagesize)pgpaginator.page(page)resultlist(pg.object_list)resultto_dict(result)returnJsonResponse({total:paginator.count,records:result})defget_content_recommend_colleges(request):# 基于物品推荐高校bodyrequest.jsonidbody.get(id)topK10oCollege.objects.get(pkid)try:idsAppConfig.recommendCollegesForCollege(o.id,topK)resultCollege.objects.filter(id__inids).order_by(?)except:resultCollege.objects.filter(locationo.location).order_by(?)returnJsonResponse(to_dict(result),safeFalse)defget_user_recommend_colleges(request):# 基于用户填表推荐高校topK10userrequest.user userinfoUserInfo.objects.filter(useruser).first()qQ()foriinuserinfo.favour_location.split(, ):ifnoti:continueq|Q(location__icontainsi)foriinuserinfo.favour_college.split(, ):ifnoti:continueq|Q(name__icontainsi)try:resultlist(College.objects.filter(q).order_by(?)[:topK])assertlen(result)0except:resultCollege.objects.order_by(?)[:topK]returnJsonResponse(to_dict(result),safeFalse)defget_college_major_list(request):bodyrequest.jsonidbody.get(id)oCollege.objects.get(pkid)pagesizebody.get(pagesize,10)pagebody.get(page,1)exclude_fields[pagesize,page,total,id]query{k:vfork,vinbody.items()ifknotinexclude_fieldsandv}qQ(**query)objso.majors.filter(q).order_by(cat1,cat2)paginatorPaginator(objs,pagesize)pgpaginator.page(page)resultlist(pg.object_list)resultto_dict(result)returnJsonResponse({total:paginator.count,records:result})defget_college_detail(request):bodyrequest.jsonidbody.get(id)oCollege.objects.get(pkid)CollegeHistory.objects.create(userrequest.user,collegeo)returnJsonResponse(to_dict([o])[0])defget_major_list(request):bodyrequest.json pagesizebody.get(pagesize,10)pagebody.get(page,1)exclude_fields[pagesize,page,total,category]query{k:vfork,vinbody.items()ifknotinexclude_fieldsandv}qQ(**query)ifbody.get(category):catbody[category]qQ(cat1cat)|Q(cat2cat)|Q(zymccat)objsMajor.objects.filter(q).order_by(id)paginatorPaginator(objs,pagesize)pgpaginator.page(page)resultlist(pg.object_list)resultto_dict(result)returnJsonResponse({total:paginator.count,records:result})defget_content_recommend_majors(request):# 基于物品推荐专业bodyrequest.jsonidbody.get(id)oMajor.objects.get(pkid)topK10try:idsAppConfig.recommendMajorsForMajor(o.id,topK)resultMajor.objects.filter(id__inids).order_by(?)except:resultMajor.objects.filter(cat2o.cat2).order_by(?)returnJsonResponse(to_dict(result),safeFalse)defget_user_recommend_majors(request):# 基于用户填表推荐专业topK10userrequest.user userinfoUserInfo.objects.filter(useruser).first()qQ()foriinuserinfo.favour_major.split(, ):ifnoti:continueq|Q(zymc__icontainsi)# for i in userinfo.favour_college.split(, ):# if not i:# continue# q | Q(colleges__name__icontainsi)try:resultMajor.objects.filter(q).order_by(?)[:topK]exceptExceptionase:resultMajor.objects.order_by(?)[:topK]returnJsonResponse(to_dict(result),safeFalse)defget_major_college_list(request):bodyrequest.jsonidbody.get(id)oMajor.objects.get(pkid)pagesizebody.get(pagesize,10)pagebody.get(page,1)exclude_fields[pagesize,page,total,id]query{k:vfork,vinbody.items()ifknotinexclude_fieldsandv}qQ(**query)objso.colleges.filter(q).order_by(-rate)paginatorPaginator(objs,pagesize)pgpaginator.page(page)resultlist(pg.object_list)resultto_dict(result)returnJsonResponse({total:paginator.count,records:result})defget_major_college_locations(request):bodyrequest.jsonidbody.get(id)oMajor.objects.get(pkid)result[i[0]foriino.colleges.values_list(location).distinct()]returnJsonResponse(result,safeFalse)defget_major_detail(request):bodyrequest.jsonidbody.get(id)oMajor.objects.get(pkid)MajorHistory.objects.create(userrequest.user,majoro)o.simileZyListto_dict(Major.objects.filter(zydm__in(o.simileZyListando.simileZyList.split(|))or[]).all())returnJsonResponse(to_dict([o])[0])defget_major_category(request):result[]for(cat1,)inMajor.objects.values_list(cat1).distinct():itemdict(valuecat1,labelcat1,children[])result.append(item)for(cat2,)inMajor.objects.filter(cat1cat1).values_list(cat2).distinct():item2dict(valuecat2,labelcat2,children[])item[children].append(item2)for(zymc,)in(Major.objects.filter(cat1cat1,cat2cat2).values_list(zymc).distinct()):item2[children].append(dict(valuezymc,labelzymc))returnJsonResponse(result,safeFalse)✌感兴趣的可以先收藏起来点赞关注不迷路想学习更多项目可以查看主页大家在毕设选题项目代码以及论文编写等相关问题都可以给我留言咨询希望可以帮助同学们顺利毕业✌5、源码获取方式由于篇幅限制获取完整文章或源码、代做项目的拉到文章底部即可看到个人联系方式。点赞、收藏、关注不迷路下方查看获取联系方式
基于Spark高考推荐系统 高考数据分析可视化 院校推荐系统 协同过滤推荐算法 爬虫(源码+文档)✅
博主介绍✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久选择我们就是选择放心、选择安心毕业✌感兴趣的可以先收藏起来点赞、关注不迷路✌毕业设计2023-2024年计算机毕业设计1000套建议收藏毕业设计2023-2024年最新最全计算机专业毕业设计选题汇总1、项目介绍技术栈python语言 pyspark、 django框架、scrapy框架、vue框架、协同过滤推荐算法、HTML基于用户物品推荐院校、基于用户物品推荐专业阳光高考网—教育部高校招生阳光工程知道平台摘要高三学生经过十二年的寒窗苦读大多数都两耳不闻窗外事一心只为了高考对于刚高考完的考生来讲他们对于自己的未来新生活是一无所知的未来的专业选择、院校选择对于他们来说都是无比的陌生不知道自己本身适合什么专业对未来的专业是否喜爱有兴趣也没有任何规划。对于自己的特长和爱好相匹配的专业更是不知道。他们在高考志愿填报的中大部分都属于蒙眼过河。随着大数据时代的到来推荐系统的应用越来越广泛了包括影视推荐、音乐推荐、新闻推荐等等。但是推荐系统在教育领域内推荐系统的应用是非常少的。高考志愿的填报是众多考生和家长的焦点但是在众多的学校和专业信息的海洋中对自己有用的信息是非常少的。因此本文将推荐系统应用于教育领域帮助考生解决高考志愿填报环节的志愿选择问题所以本系统的开发是十分有意义的。本文利用 bootstrap3HTMLCSS级联样式表的前端开发技术开发设计了高考志愿推荐的Web前端界面。其中包括用户注册、登录界面、院校信息、专业信息和志愿推荐结果展示界面在保证本系统实用性和易用性的同时为用户提供良好的交互体验。 本系统的开发后端采用Python语言和Django框架进行搭建本系统还设计了问卷调查和高校推荐模块通过设计霍兰德职业兴趣测试问卷调查的形式侧面分析出考生的的性格类型为其推荐较适合的专业这也是本系统开发的创新点。【关键词】Python语言高考志愿高校专业推荐系统2、项目界面1高校信息库模块2高校详情页面3高校推荐模块4专业信息库5专业详情页面6开设专业高校7个性化推荐高校8高考信息设置9后台数据管理3、项目说明系统中各个模块的具体实现:1. 数据抓取模块 该模块使用了Scrapy爬虫框架通过访问“阳光高考”网站来抓取大学和专业相关数据。在抓取大学数据时我们将获取学校名称、学校logo、简介、满意度、院系设置、录取规则、食宿条件、设立专业等字段在抓取大学专业数据时我们将获取学历层次、专业代码、所属门类、专业类别、介绍、相近专业、从业方向、统计了毕业生规模以及男女比例等信息。 2. 用户注册登录模块 该模块使用Django框架实现用户的注册和登录功能。在注册时我们要求用户提供用户名、密码等必要信息同时对用户输入进行合法性校验在登录时用户需要输入正确的用户名和密码才能成功登录系统。 3. 后台管理模块 该模块是系统管理员可以对系统中的数据进行管理操作的接口包括大学和专业数据的增删改查。我们使用Django Admin框架实现后台管理功能。管理员登陆后进入后台管理界面就可以对系统中的数据进行增删改查的操作。 4. 高校信息查询模块 该模块是实现用户在高校名称关键词、高校所在地、学历层次等信息筛选出符合条件的国内高校的功能该页面以卡片形式展示了高校信息。我们使用VueElement-Plus框架来实现前端页面渲染、数据展示和分页组件使用Django框架来实现后端API接口。我们将20条数据为一页以此来降低后端压力。 5. 专业信息查询模块 该模块是用户可以根据专业分类以及关键词等信息筛选出符合条件的大学专业数据的功能该页面以表格形式展示了专业信息。我们同样使用VueElement-Plus框架来实现前端页面渲染、数据展示和分页组件使用Django框架来实现后端API接口。 6. 个性化推荐高校和专业模块 该模块是根据用户在高考志愿填报模块所填写的预测成绩、喜欢的专业、喜欢的学校以及想去的省份所在地等信息从数据库中查找出符合用户条件的高校以及专业数据再个性化地推荐给用户的功能。我们使用基于物品的协同过滤算法实现系统的推荐功能并使用Django框架实现后端API接口。 7. 高校详情模块 该模块是当用户查看某高校详情时可以看到该高校的多种信息比如院校简介、学校领导、周边环境、通讯地址、院校设置、重点实验室、重点学科、师资力量、录取条件、食宿条件等还可以查看该学校设立的所有专业数据。该模块同样使用VueElement-Plus框架实现前端页面渲染、数据展示使用Django框架实现后端API接口并使用基于物品的协同过滤算法给用户推荐相似的高校数据。 8. 专业详情模块 该模块是当用户查看某专业的详情时可以看到该专业的多种信息比如学历层次、专业代码、所属门类专业分类、专业介绍、统计信息包括该专业的毕业生规模和男女比例、相似专业、毕业后的从业方向。该模块同样使用VueElement-Plus框架实现前端页面渲染、数据展示使用Django框架实现后端API接口并使用基于物品的协同过滤算法给用户推荐相似的专业数据。技术及功能关键词:技术栈python语言 pyspark、 django框架、scrapy框架、vue框架、协同过滤推荐算法、HTML基于用户物品推荐院校、基于用户物品推荐专业阳光高考网—教育部高校招生阳光工程知道平台通过scrapy爬虫框架抓取“阳光高考”网站上的大学数据(包括了学校名称、学校logo、简介、满意度、院系设置、录取规则、食宿条件、设立专业等字段)以及大学的专业(包括了学历层次、专业代码、所属门类、专业类别、介绍、相近专业、从业方向、统计了毕业生规模以及男女比例等信息)数据 前台用户通过登陆注册后进入系统 管理员可在后台管理所有抓取到的大学及大学专业数据以及用户填写的高考志愿意向数据 高校信息查询模块用户可以根据高校名称关键词、高校所在地、学历层次等信息筛选出符合条件的国内高校该页面以卡片形式展示了高校信息其中包括了高校名称、高校LOGO、所在地、学历层次、主管部门以及高校评分等数据分页组件以20条数据为一页可大大降低后端压力 专业信息查询模块用户可以根据专业分类以及关键词等信息筛选出符合条件的大学专业数据该页面以表格形式展示了专业信息其中包括专业名称、专业所属门类、专业所属类以及专业满意度等信息 个性化推荐高校和专业模块这是根据用户在高考志愿填报模块所填写的预测成绩、喜欢的专业、喜欢的学校以及想去的省份所在地等信息在数据库中查找出符合用户条件的高校以及专业数据再个性化地推荐给用户需要注意的是当用户第一次访问该模块时系统会检测用户是否已填写志愿如果没有必须填写后才能够推荐 当用户查看某高校详情时可以看到该高校的多种信息比如院校简介、学校领导、周边环境、通讯地址、院校设置、重点实验室、重点学科、师资力量、录取条件、食宿条件等还可以查看该学校设立的所有专业数据同时系统会依据基于物品的协同过滤算法给用户推荐相似的高校数据 当用户查看某专业的详情时可以看到该专业的多种信息比如学历层次、专业代码、所属门类专业分类、专业介绍、统计信息包括该专业的毕业生规模和男女比例、相似专业、毕业后的从业方向。也可以看到该专业有哪些高校设立同时系统会依据基于物品的协同过滤算法给用户推荐相似的专业数据4、核心代码from.modelsimport*fromdjango.http.responseimportHttpResponsefromdjango.shortcutsimportrenderfromdjango.httpimportJsonResponsefromdatetimeimportdatetime,timefromdjango.core.paginatorimportPaginatorfromdjango.db.modelsimportQfromapp.appsimportAppConfigfromauth.modelsimportUserInfodefto_dict(l,excludetuple()):# 将数据库模型 变为 字典数据 的工具类函数deftransform(v):ifisinstance(v,datetime):returnv.strftime(%Y-%m-%d %H:%M:%S)returnvdef_todict(obj):j{k:transform(v)fork,vinobj.__dict__.items()ifnotk.startswith(_)andknotinexclude}returnjreturn[_todict(i)foriinl]defget_college_list(request):bodyrequest.json pagesizebody.get(pagesize,10)pagebody.get(page,1)exclude_fields[pagesize,page,total]query{k:vfork,vinbody.items()ifknotinexclude_fieldsandv}qQ(**query)objsCollege.objects.filter(q).order_by(id)paginatorPaginator(objs,pagesize)pgpaginator.page(page)resultlist(pg.object_list)resultto_dict(result)returnJsonResponse({total:paginator.count,records:result})defget_content_recommend_colleges(request):# 基于物品推荐高校bodyrequest.jsonidbody.get(id)topK10oCollege.objects.get(pkid)try:idsAppConfig.recommendCollegesForCollege(o.id,topK)resultCollege.objects.filter(id__inids).order_by(?)except:resultCollege.objects.filter(locationo.location).order_by(?)returnJsonResponse(to_dict(result),safeFalse)defget_user_recommend_colleges(request):# 基于用户填表推荐高校topK10userrequest.user userinfoUserInfo.objects.filter(useruser).first()qQ()foriinuserinfo.favour_location.split(, ):ifnoti:continueq|Q(location__icontainsi)foriinuserinfo.favour_college.split(, ):ifnoti:continueq|Q(name__icontainsi)try:resultlist(College.objects.filter(q).order_by(?)[:topK])assertlen(result)0except:resultCollege.objects.order_by(?)[:topK]returnJsonResponse(to_dict(result),safeFalse)defget_college_major_list(request):bodyrequest.jsonidbody.get(id)oCollege.objects.get(pkid)pagesizebody.get(pagesize,10)pagebody.get(page,1)exclude_fields[pagesize,page,total,id]query{k:vfork,vinbody.items()ifknotinexclude_fieldsandv}qQ(**query)objso.majors.filter(q).order_by(cat1,cat2)paginatorPaginator(objs,pagesize)pgpaginator.page(page)resultlist(pg.object_list)resultto_dict(result)returnJsonResponse({total:paginator.count,records:result})defget_college_detail(request):bodyrequest.jsonidbody.get(id)oCollege.objects.get(pkid)CollegeHistory.objects.create(userrequest.user,collegeo)returnJsonResponse(to_dict([o])[0])defget_major_list(request):bodyrequest.json pagesizebody.get(pagesize,10)pagebody.get(page,1)exclude_fields[pagesize,page,total,category]query{k:vfork,vinbody.items()ifknotinexclude_fieldsandv}qQ(**query)ifbody.get(category):catbody[category]qQ(cat1cat)|Q(cat2cat)|Q(zymccat)objsMajor.objects.filter(q).order_by(id)paginatorPaginator(objs,pagesize)pgpaginator.page(page)resultlist(pg.object_list)resultto_dict(result)returnJsonResponse({total:paginator.count,records:result})defget_content_recommend_majors(request):# 基于物品推荐专业bodyrequest.jsonidbody.get(id)oMajor.objects.get(pkid)topK10try:idsAppConfig.recommendMajorsForMajor(o.id,topK)resultMajor.objects.filter(id__inids).order_by(?)except:resultMajor.objects.filter(cat2o.cat2).order_by(?)returnJsonResponse(to_dict(result),safeFalse)defget_user_recommend_majors(request):# 基于用户填表推荐专业topK10userrequest.user userinfoUserInfo.objects.filter(useruser).first()qQ()foriinuserinfo.favour_major.split(, ):ifnoti:continueq|Q(zymc__icontainsi)# for i in userinfo.favour_college.split(, ):# if not i:# continue# q | Q(colleges__name__icontainsi)try:resultMajor.objects.filter(q).order_by(?)[:topK]exceptExceptionase:resultMajor.objects.order_by(?)[:topK]returnJsonResponse(to_dict(result),safeFalse)defget_major_college_list(request):bodyrequest.jsonidbody.get(id)oMajor.objects.get(pkid)pagesizebody.get(pagesize,10)pagebody.get(page,1)exclude_fields[pagesize,page,total,id]query{k:vfork,vinbody.items()ifknotinexclude_fieldsandv}qQ(**query)objso.colleges.filter(q).order_by(-rate)paginatorPaginator(objs,pagesize)pgpaginator.page(page)resultlist(pg.object_list)resultto_dict(result)returnJsonResponse({total:paginator.count,records:result})defget_major_college_locations(request):bodyrequest.jsonidbody.get(id)oMajor.objects.get(pkid)result[i[0]foriino.colleges.values_list(location).distinct()]returnJsonResponse(result,safeFalse)defget_major_detail(request):bodyrequest.jsonidbody.get(id)oMajor.objects.get(pkid)MajorHistory.objects.create(userrequest.user,majoro)o.simileZyListto_dict(Major.objects.filter(zydm__in(o.simileZyListando.simileZyList.split(|))or[]).all())returnJsonResponse(to_dict([o])[0])defget_major_category(request):result[]for(cat1,)inMajor.objects.values_list(cat1).distinct():itemdict(valuecat1,labelcat1,children[])result.append(item)for(cat2,)inMajor.objects.filter(cat1cat1).values_list(cat2).distinct():item2dict(valuecat2,labelcat2,children[])item[children].append(item2)for(zymc,)in(Major.objects.filter(cat1cat1,cat2cat2).values_list(zymc).distinct()):item2[children].append(dict(valuezymc,labelzymc))returnJsonResponse(result,safeFalse)✌感兴趣的可以先收藏起来点赞关注不迷路想学习更多项目可以查看主页大家在毕设选题项目代码以及论文编写等相关问题都可以给我留言咨询希望可以帮助同学们顺利毕业✌5、源码获取方式由于篇幅限制获取完整文章或源码、代做项目的拉到文章底部即可看到个人联系方式。点赞、收藏、关注不迷路下方查看获取联系方式