基于Python + Django + mysql的协同推荐算法的电影推荐系统
本系统一共分为前台系统功能和后台系统功能两个模块,两个模块之间虽然在表面上是相互独立的,但是在对数据库的访问上是紧密相连的,各个模块访在同一数据库中分别对应不同的数据表。根据以上的功能分析,系统在前后台两个模块的基础上每一个模块又分为几个子模块。
一、前台系统功能模块设计
1、会员注册模块:填写并提交个人信息,通过验证成功注册成为会员;
2、会员登录模块:注册后进行会员登录,便于进行之后的购买商品操作;
3、电影推荐模块:通过热销电影、按影片类型分类,分区域和页面展示网站的热销、新品等,根据用户浏览记录进行电影推荐,基于协调推荐算法推荐;
4、会员购票模块:通过对电影信息的浏览,选出自己喜爱的电影并选择购买,随后可提交评价或在购物车中查看;
5、评价查询模块:用户通过查看评价了解自己当前评价信息及所有评价记录。
三、后台系统功能模块设计
1、用户管理模块:该模块可以对用户的信息进行修改和删除;
2、电影分类管理模块:电影分类模块下分为两个子模块,一是一级分类管理,是通过影片类型对电影进行分类,二是二级分类管理,是通过国家地区的不同对电影归类;
3、电影信息管理模块:该模块可实现对电影基本信息的添加、修改和删除;
4、评价管理模块:管理员查看评价详细信息,删除评价信息,并对评价进行处理。
from django.views.generic.base import View
from datetime import datetime
from django.shortcuts import render
from django.http import HttpResponse
from django.core.paginator import PageNotAnInteger,Paginator
from operation.models import UserFavorite,UserComments,UserBrowse,UserRatings
from movieinfo.models import Movie,MovieParticulars
class AddFavView(View):
“”“用户收藏和取消收藏”""
def post(self,request):
# 防止后边int(fav_id)时出错
id=request.POST.get(‘fav_id’,0)
if not request.user.is_authenticated:
# 未登录时返回json提示未登录,跳转到登录页面是在ajax中做
return HttpResponse(’{“status”:“fail”,“msg”:“用户未登录”}’, content_type=‘application/json’)
exist_record=UserFavorite.objects.filter(user=reques