项目运行
需要先安装Python的相关依赖:pymysql,Django==3.2.8,pillow 使用pip install 安装
第一步:创建数据库
第二步:执行SQL语句,.sql文件,运行该文件中的SQL语句
第三步:修改源代码中的settings.py文件,改成自己的mysql数据库用户名和密码
第四步:运行命令:python manage.py runserver 8000
第五步:打开浏览器查看http://127.0.0.1:8000
毕设帮助,指导,本源码分享,调试部署(见文末)
系统简介
电影个性化推荐系统是一个基于Web的应用程序,旨在为用户提供个性化的电影推荐服务。系统通过分析用户的历史行为和偏好,结合电影的相关信息,为用户提供定制化的电影推荐。
整体功能包含:
- 用户注册与登录
- 电影信息展示
- 电影评分与评论
- 电影推荐算法
- 电影资讯浏览
- 后台管理功能
前台模块:
- 首页:展示推荐电影、电影排行、最新资讯等。
- 电影浏览:用户可以根据分类或搜索功能浏览电影。
- 电影详情:查看电影的详细信息,包括剧情、演员、导演等,并可以进行评分和评论。
- 个人中心:用户可以查看自己的收藏、评分历史和评论。
后台模块:
- 用户管理:管理员可以查看、编辑和删除用户信息。
- 电影管理:管理员可以添加、编辑和删除电影信息。
- 分类管理:管理员可以管理电影的分类信息。
- 资讯管理:管理员可以发布和编辑电影相关资讯。
- 评论管理:管理员可以查看和管理用户的电影评论。
页面展示
代码实现:
import time
from django.shortcuts import render
from .models import User
from django.http import JsonResponse, HttpResponseRedirect
from django.core.paginator import Paginator
# from utils.mypage import Pagination
def register(request):
"""
注册账号
:return:
"""
try:
name = request.POST.get('username')
passwd = request.POST.get('password')
phone = request.POST.get('phone')
user = User.objects.filter(name=name)
if user:
return JsonResponse({'message': '用户已存在,请直接登录'}, status=403)
User.objects.create(
name=name,
password=passwd,
phone=phone,
role=2,
description=''
)
response_data = {'message': '注册成功'}
return JsonResponse(response_data)
except Exception as e:
print(e)
return JsonResponse({'message': '注册失败'}, status=401)
def password(request):
username = request.session['username']
role = int(request.session['role'])
user_id = request.session['user_id']
return render(request, 'modify_password.html', locals())
def get_user(request):
"""
获取用户列表信息 | 模糊查询
:param request:
:return:
"""
keyword = request.GET.get('name')
page = request.GET.get("page", '')
limit = request.GET.get("limit", '')
role_id = request.GET.get('position', '')
response_data = {}
response_data['code'] = 0
response_data['msg'] = ''
data = []
if keyword is None:
results_obj = User.objects.all()
else:
results_obj = User.objects.filter(name__contains=keyword).all()
paginator = Paginator(results_obj, limit)
results = paginator.page(page)
if results:
for user in results:
record = {
"id": user.id,
"name": user.name,
"password": user.password,
"phone": user.phone,
"role": user.role,
'create_time': user.create_time.strftime('%Y-%m-%d %H:%m:%S'),
"desc": user.description,
}
data.append(record)
response_data['count'] = len(results_obj)
response_data['data'] = data
return JsonResponse(response_data)
def user(request):
"""
跳转用户页面
"""
username = request.session['username']
role = int(request.session['role'])
user_id = request.session['user_id']
return render(request, 'user.html', locals())
def login_check(request):
"""
登录校验
"""
response_data = {}
name = request.POST.get('username')
password = request.POST.get('password')
user = User.objects.filter(name=name, password=password).first()
info = {}
if user:
# 将用户名存入session中
request.session["username"] = user.name
request.session["role"] = user.role
request.session["user_id"] = user.id
response_data['message'] = '登录成功'
return JsonResponse(response_data, status=201)
else:
return JsonResponse({'message': '用户名或者密码不正确'}, status=401)
def edit_user(request):
"""
修改用户
"""
response_data = {}
user_id = request.POST.get('id')
username = request.POST.get('username')
phone = request.POST.get('phone')
desc = request.POST.get('desc')
User.objects.filter(id=user_id).update(
name=username,
desc=desc,
phone=phone)
response_data['msg'] = 'success'
return JsonResponse(response_data, status=201)
def del_user(request):
"""
删除用户
"""
user_id = request.POST.get('id')
result = User.objects.filter(id=user_id).first()
try:
if not result:
response_data = {'error': '删除失败!', 'message': '找不到id为%s' % user_id}
return JsonResponse(response_data, status=403)
result.delete()
response_data = {'message': '删除成功!'}
return JsonResponse(response_data, status=201)
except Exception as e:
response_data = {'message': '删除失败!'}
return JsonResponse(response_data, status=403)
def change_password(request):
"""
修改密码
"""
old_pwd = request.POST.get('password1')
username = request.session["username"]
user_obj = User.objects.filter(name=username).first()
if user_obj.password == old_pwd:
User.objects.filter(name=username).update(password=request.POST.get('password2'))
return JsonResponse({'msg': '修改成功!', 'error': 0})
else:
return JsonResponse({'msg': '旧密码不正确,请重新输入', 'error': 403})
总结:
本电影个性化推荐系统项目是基于Django框架和Python语言开发的。深入理解了Web开发的流程,包括数据库设计、前后端交互、用户认证、以及电影推荐算法的实现。这个系统为用户提供了一个界面友好、操作简便的电影推荐平台,同时也为管理员提供了一个功能全面的后台管理系统。
源码获取:
私信获取