本文由 包哥源码网 – admin 发布,转载请注明出处,如有问题请联系我们!毕业设计:一个基于Python+Django电影推荐系统,实现用户登录、评分、推荐,采用协同过滤算法。

¥150 积分 [如何获取积分?]
  • 源码分类:毕业设计
  • 系统品牌:其他
  • 开发语言:Python
  • 数据库:Mysql
  • 下载次数:0
  • 最后更新:2020-05-27 22:33:34
  • 一个电影推荐系统——实现用户登录、评分、推荐,采用协同过滤算法。


    系统流程

    用户注册、登录系统,对看过的电影进行评分,点击提交评分按钮,再点击查看推荐按钮即可看见推荐的电影列表。项目主页以及推荐结果如下:

    如何使用

    1.首先将项目克隆到本地,用Pycharm打开movierecommend文件夹,并install项目依赖

    2.将用到的csv文件导入mysql数据表中,详见数据库建表 ,配置好数据库;注意数据库相关代码(settings.py、views.py)可能都要进行修改以符合实际情况;(本项目端口号为3307,用户为root,密码为admin,database为MovieData);

    3.命令行执行:


    python manage.py makemigrations

    python manage.py migrate

    python manage.py runserver

    点击http://127.0.0.1:8000/ 即可查看注册登录以及评分页面。

    注意登录后点击电影海报下面的星星对该电影评分,之后还要点击左上角的“提交评分”按钮才能将该评分数据存入mysql中,否则代码会报错。


    项目依赖

    1.Python3.6+django1.11 (python3.5亦可)

    2.MySQL5.6

    3.Jquery+CSS3+Html5


    数据库建表处理

    1.在MySQL中创建一个database,取好名字,比如MovieData;

    2.在该数据库中创建moviegenre3和users_resulttable两张表,建表命令行如下:


    CREATE TABLE moviegenre3(imdbId INT NOT NULL PRIMARY KEY,title varchar(300),poster varchar(600)); 

    CREATE TABLE users_resulttable(userId INT NOT NULL,imdbId INT,rating DECIMAL(3,1)); 

    3.通过命令行或者navicat等工具将项目data文件夹下的两张csv表分别导入上面创建好的两张table中。由于moviegenre3.csv中的超链接较复杂,建议使用navicat工具导入;users_resulttable表可以使用下面命令行导入:


    load data infile "E:/MovieRecommend/data/users_resulttable.csv" into table users_resulttable fields terminated by ',' lines terminated by '\n' (userId,imdbId,rating);

    注意,此表没有主键,增加主键操作为:


    alter table users_resulttable add column id int auto_increment PRIMARY KEY; 

    问题

    1.由于在views.py的查询推荐结果的代码中直接将查询sql写死为select * from users_resulttable WHERE userId = 1001,可能会报keyerror:1001的错误。如果报错请检查users_resulttable表的末尾是否存入了userId=1001的用户评分记录,如果没有,很可能是用户没有点击提交评分按钮将数据插入数据表造成的。如果要进行第二个用户的注册和登录推荐,要将sql改为userId=1002或者先将user表中所存用户信息删除。

    2.如果通过命令行将csv导入数据库表报错‘The MySQL server is running with the --secure-file-priv option so it cannot execute this statement’,则是mysql版本问题,建议使用5.6版本。如果使用5.7版本出现此问题,修改mysql文件夹下的my.ini文件,增加secure_file_priv=语句,并且在service服务里面重启mysql即可。

    3.执行迁移时出现问题建议删除迁移文件重新迁移。


    评论(0条)

    请登录后评论
    admin

    admin

    0

    0

    0

    ( 有什么问题,可以加QQ好友或者QQ联系我哦。 )
    img

    毕业设计:一个基于Python+Django电影推荐系统,实现用户登录、评分、推荐,采用协同过滤算法。

    下载积分 钻石会员
    150 免费
    请您 登录后 下载 !
    说明

    您下载所消耗的积分将转交上传作者。上传资源,免费获取积分!