# MovieRecOnline
本小组项目实现在线电影推荐系统的前后端开发,使用Django2.2+MySQL+spark。其中MySQL部分支持在线计算,spark支持离线计算。基于[MovieSizer](https://github.com/NanceEvan/MovieSizer),本项目精简美化,实现了新的功能。
## 目录
- [安装指南](#1)
- [数据导入](#2)
- [算法说明](#3)
- [预览](#4)
## <p id=1>安装指南
### 环境配置
本项目基于ubuntu18.04运行。
如下安装好Django2.0+和最新的xadmin
```bash
pip3 install --upgrade pip;
pip3 install git+git://github.com/sshwsfc/xadmin.git@django2;
pip3 install django;
pip3 install Pillow;
pip3 show xadmin;
pip3 show django;
```
还需要安装MySQL8.0+,具体过程可参考[MySQL8.0环境搭建](https://github.com/JimXiongGM/BigDataProject/blob/master/Documentations/MySql_8.0.md)
### 项目清理
Django框架需要通过migrate命令自动构建数据库,但是会生成相应的缓存文件,这里清空所有的缓存文件并保留应有的结构。
```bash
cd MovieRecOnline;
rm -r ./apps/movies/__pycache__
rm -r ./apps/operation/__pycache__
rm -r ./MovieSizer/__pycache__
rm -r ./apps/movies/migrations/*
rm -r ./apps/user/migrations/*;
rm -r ./apps/operation/migrations/*;
touch ./apps/movies/migrations/__init__.py
touch ./apps/user/migrations/__init__.py
touch ./apps/operation/migrations/__init__.py
```
### 配置MySQL数据库
首先修改`MovieRecOnline/MovieSizer/settings.py`文件的mysql数据库连接:
```py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'MovieSizer',
'USER': 'root',
'PASSWORD': '你的密码',
'HOST': 'master',
'PORT': '3306'
}
}
```
然后在MySQL shell中建立数据库`MovieSizer`
`mysql -u root -p`
```sql
use mysql;
create database MovieSizer;
```
### 启动项目
执行`migrate`自动建表:
```bash
cd MovieRecOnline;
chmod +x manage.py;
python3 manage.py makemigrations;
python3 manage.py migrate;
```
输出如下
```
Migrations for 'operation':
MovieSizer-final/apps/operation/migrations/0001_initial.py
- Create model Top5Recommend_2
- Create model Top5Recommend
- Create model Review
- Create model Rating
- Create model Default5Recommend
.
.
.
Operations to perform:
Apply all migrations: admin, auth, contenttypes, movies, operation, sessions, user, xadmin
Running migrations:
Applying operation.0001_initial... OK
.
.
.
```
最后创建管理员用户
```bash
python3 manage.py createsuperuser
```
启动项目
```bash
python3 manage.py runserver 0.0.0.0:8000
```
成功则输出如下
```
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
May 15, 2019 - 00:47:32
Django version 2.2, using settings 'MovieSizer.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
[15/May/2019 00:47:37] "GET /movieinfo/7641 HTTP/1.1" 200 47740
^C
```
## <p id=2>数据导入
本项目提供爬取的猫眼电影网站数据作为DEMO,共1000条,字段对应`movies_movieinfo`表,[点击这里](./movies_movieinfo_DEMO.sql)可以看到该SQL文件,复制到MySQL shell中即可插入数据。
接着使用我们编写的[`cal_similar_gry.py`](./cal_similar_gry.py)文件计算电影相似度,存入`movies_moviesimilar`表。注意需要使用`pip3 install distance`安装依赖,并将MySQL账号密码的参数设置正确。
到这里我们已经计算好了`movies_movieinfo`表和`movies_moviesimilar`表,主页已经能显示。
## <p id=3>算法说明
本项目计算两张电影相似度表,分别是`movies_moviesimilar`和`movies_moviesimilar_fromspark`,对应两张推荐表`operation_top5recommend`和`operation_top5recommend_2`。第二张相似表由spark计算得出,详情可见['calculate_similarity_mch.ipynb'](./calculate_similarity_mch.ipynb)。spark分布式的安装可以参考[Spark全分布式安装](https://github.com/JimXiongGM/BigDataProject/blob/master/Documentations/Spark_distribute.md)
## <p id=4>预览
有时可以访问:http://www.playbigdata.top:8000/
效果预览:
![web预览](./index_save.png)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1、该资源内项目代码经过严格调试,下载即用确保可以运行! 2、该资源适合计算机相关专业(如计科、人工智能、大数据、数学、电子信息等)正在做课程设计、期末大作业和毕设项目的学生、或者相关技术学习者作为学习资料参考使用。 3、该资源包括全部源码,需要具备一定基础才能看懂并调试代码。 基于Django2.2+MySQL+spark的在线电影推荐系统设计与实现.zip基于Django2.2+MySQL+spark的在线电影推荐系统设计与实现.zip基于Django2.2+MySQL+spark的在线电影推荐系统设计与实现.zip基于Django2.2+MySQL+spark的在线电影推荐系统设计与实现.zip基于Django2.2+MySQL+spark的在线电影推荐系统设计与实现.zip基于Django2.2+MySQL+spark的在线电影推荐系统设计与实现.zip基于Django2.2+MySQL+spark的在线电影推荐系统设计与实现.zip基于Django2.2+MySQL+spark的在线电影推荐系统设计与实现.zip基于Django2.2+MySQL+spark的在线电影推荐系
资源推荐
资源详情
资源评论
收起资源包目录
基于Django2.2+MySQL+spark的在线电影推荐系统设计与实现.zip (579个子文件)
style.css 148KB
bootstrap.css 138KB
animate.css 69KB
base.css 62KB
aui.css 58KB
common-less.css 46KB
font-awesome.css 34KB
mobiscroll.css 25KB
common-less.css 21KB
mooc.css 20KB
course-comment.css 16KB
layer.css 11KB
cityLayout.css 10KB
learn-less.css 9KB
login.css 9KB
popuo-box.css 7KB
laydate.css 6KB
easy-responsive-tabs.css 6KB
table-style.css 5KB
zoomslider.css 5KB
lq.datetimepick.css 5KB
base.css 4KB
owl.carousel.css 4KB
laydate.css 3KB
layer.ext.css 3KB
reset.css 3KB
list.css 2KB
basictable.css 942B
Thumbs.db 275KB
Thumbs.db 0B
fontawesome-webfont.eot 75KB
glyphicons-halflings-regular.eot 20KB
background.gif 8KB
loading-0.gif 6KB
help_index_pic.gif 2KB
rolling.gif 2KB
loading-2.gif 2KB
select-arr-default.gif 1KB
pop-tips-info-arr.gif 1KB
loading-1.gif 701B
pixel.gif 43B
.gitattributes 26B
base.html 47KB
content.html 10KB
comments.html 6KB
register.html 5KB
login.html 5KB
index.html 3KB
sign.html 1KB
test.html 733B
duplicat.html 722B
ok.html 716B
err.html 704B
icon.ico 2KB
calculate_similarity_mch.ipynb 49KB
calculate_similarity_mch-checkpoint.ipynb 49KB
4.jpg 207KB
1.jpg 196KB
3.jpg 196KB
11.jpg 195KB
2.jpg 173KB
contract.jpg 118KB
57aa86a0000145c512000460_20161210234050_865.jpg 93KB
57aa86a0000145c512000460.jpg 93KB
57aa86a0000145c512000460_nMwvoQD.jpg 93KB
57aa86a0000145c512000460_GXIBATC.jpg 93KB
57aa86a0000145c512000460.jpg 93KB
companydes.jpg 74KB
banner.jpg 74KB
01.jpg 65KB
02.jpg 62KB
57a801860001c34b12000460_z4Vb8zl_20161210233313_629.jpg 56KB
57a801860001c34b12000460_z4Vb8zl.jpg 56KB
57a801860001c34b12000460.jpg 56KB
57a801860001c34b12000460.jpg 56KB
66.jpg 49KB
77.jpg 42KB
python-zhengze.jpg 42KB
55.jpg 41KB
44.jpg 39KB
course.jpg 36KB
module1_2.jpg 34KB
c6.jpg 33KB
hr3.jpg 32KB
module5_2.jpg 32KB
m13.jpg 32KB
m16.jpg 31KB
t8.jpg 31KB
t7.jpg 30KB
t4.jpg 30KB
m11.jpg 30KB
22.jpg 29KB
h7.jpg 29KB
m15.jpg 28KB
02_mid.jpg 28KB
m4.jpg 27KB
m14.jpg 27KB
m10.jpg 27KB
01_mid(1).jpg 26KB
g7.jpg 26KB
共 579 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
辣椒种子
- 粉丝: 4137
- 资源: 5738
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功