项目介绍
随着社会的发展,人们生活水平的提高,欣赏电影逐渐成为人们闲暇时的主要娱乐方式之一。电影院也越来越多,除了一些大型连锁式电影院外,还有很多社区影院,小剧场等也日益增多。这类电影院中,传统的电影售票都是人工服务,观看座位都是人工安排,无法体现人性化选择,加上现在人们的生活节奏越来越快,购票时间需要相应缩短以及方便电影院工作人员的管理。因此,充分利用现代信息化、因特网的优势,设计“电影推荐系统”,提高系统建设的工作效率,提高信息的及时性、减轻各级相关工作人员的劳动强度是非常有必要和紧迫的任务。
功能需求
1.用户管理的功能包括:注册、登入及修改密码,影票订购,评论功能,收藏功能;
2.电影分类功能包括:电影分类模块是对网站内的电影进行一个细致的分类,当用户登之后就会进入到主页面,会看到电影模块,点击进去会看见电影的分类项;
3.电影排名的功能包括:电影排名数据根据用户的点击量在首页进行排名,排名模块会示电影的排名以及评分,用户可以点击进入详情页面;
4.电影详情的功能包括:页面中有导航栏,影片的片名,导演,编剧,主演,类型,制国家,语言,上映时间,片长,又名,评分,电影详细介绍等;
5.电影推荐的功能包括:使用协同过滤算法根据用户爱好和观看记录推荐电影;6.订单管理的功能:影票的订购。
7.要使用到数据集
开发环境
计算机毕业设计Python+django的基于协同过滤算法的电影推荐系统(源码+系统+mysql数据库+Lw文档)
开发语言:Python
python框架:django
软件版本:python3.7/python3.8
数据库:mysql 5.7或更高版本
数据库工具:Navicat11
开发软件:PyCharm/vs code
前端框架:vue.js
可开发框架:ssm/Springboot/vue/python/PHP/小程序/安卓均可开发
系统截图
用户登录进入电影推荐系统可以首页查看电影分类、热门电影、最新上映、评分最高等内容
电影排行榜,用户在电影排行榜页面中可查看、搜索操作,点击电影可查看详情
热门电影,用户在热门电影页面中查看导演、主演、类型、制片国家、语言、上映日期、片长、片名等内容,可进行收藏、评价、评论操作,也可根据需要输入热门电影称进行搜索操作
核心代码
# Create your views here.
def homepage(request):
return redirect(reverse('movie:index'))
def import_data(request):
return render(request, 'common/import_data.html')
@require_POST
def import_movies_(request):
start_row = request.POST.get('start_row')
try: start_row = int(request.POST.get('start_row'))
except:return HttpResponse('wrong')
import_movies(start_row)
return redirect(reverse('common:import_data'))
@require_POST
def import_users_(request):
start_row = request.POST.get('start_row')
try: start_row = int(request.POST.get('start_row'))
except:return HttpResponse('wrong')
import_users(start_row)
return redirect(reverse('common:import_data'))
@require_POST
def import_comments_(request):
start_row = request.POST.get('start_row')
try: start_row = int(request.POST.get('start_row'))
except:return HttpResponse('wrong')
import_comments(start_row)
return redirect(reverse('common:import_data'))
@require_POST
def import_ratings_(request):
start_row = request.POST.get('start_row')
try: start_row = int(request.POST.get('start_row'))
except:return HttpResponse('wrong')
import_ratings(start_row)
return redirect(reverse('common:import_data'))
@require_POST
def modify_release_date_(request):
start_row = request.POST.get('start_row')
try:
start_row = int(request.POST.get('start_row'))
except:
return HttpResponse('wrong')
modify_release_date(start_row)
return redirect(reverse('common:import_data'))
@require_POST
def modify_rating_(request):
start_row = request.POST.get('start_row')
try:
start_row = int(request.POST.get('start_row'))
except:
return HttpResponse('wrong')
calculate_rating(start_row)
return redirect(reverse('common:import_data'))
@require_POST
def modify_user_rating_(request):
start_row = request.POST.get('start_row')
try:
start_row = int(request.POST.get('start_row'))
except:
return HttpResponse('wrong')
calculate_user_rating(start_row)
return redirect(reverse('common:import_data'))
@require_POST
def delete_users_(request):
start_row = request.POST.get('start_row')
try:
start_row = int(request.POST.get('start_row'))
except:
return HttpResponse('wrong')
delete_users(start_row)
return redirect(reverse('common:import_data'))