Python+Django+Mysql个性化图书推荐系统 图书在线推荐系统 基于用户、项目、内容的协同过滤推荐算法 WebBookRSM、Python python实现协同过滤推荐算法实现 源代码下载
一、项目简介
1、开发工具和实现技术
Python3.8,Django3,mysql8,navicat数据库管理工具,html页面,javascript脚本,jquery脚本,bootstrap前端框架,layer弹窗组件、webuploader文件上传组件等。
2、项目功能
前台用户包含:注册、登录、注销、浏览图书、搜索图书、信息修改、密码修改、兴趣喜好标签、图书评分、图书收藏、图书评论、热点推荐、个性化推荐图书等功能;
后台管理员包含:用户管理、图书管理、图书类型管理、评分管理、收藏管理、评论管理、兴趣喜好标签管理、权限管理等。
个性化推荐功能:
无论是否登录,在前台首页展示热点推荐(根据图书被收藏数量降序推荐)。登录用户,在前台首页展示个性化推荐,基于用户的协同过滤推荐算法和基于项目的协同过滤推荐算法,根据评分数据,如果没有推荐结果进行喜好标签推荐(随机查找喜好标签下的图书)。
图书数据来源:抓取豆瓣图书数据
- 需求分析
主要是分析需要实现的功能、确定开发工具及技术等。例如:前台用户需要有登录、注册、注销、搜索图书、图书评分、个性化推荐等,后台管理员需要有登录、注销、用户管理、图书管理、图书类型管理等,个性化推荐使用基于用户的协同过滤推荐算法等。Python开发语言,mysql数据库,django开发框架等。
- 数据库设计
数据库设计使用navicat数据库管理工具,可通过sql语句脚本生成数据库表,也可以直接操作新建表设计表等。注意主外键关联设计,例如:评分记录表需要外键关联用户表和图书表。
- 页面设计
使用bootstrap前端框架,通过学习https://v3.bootcss.com/官方文档和开发案例来设计页面。
- 开发框架搭建
Django开发框架搭建请参考:使用pycharm创建django项目讲解.doc
- 功能开发
首先是进行前台用户首页的开发,其次是图书详情,然后是用户注册、登录等,接着是用户的评分、修改信息等,然后是进行管理员功能的开发,最后是进行前台用户的个性化推荐功能实现。
- 系统测试
主要是进行bug修改,推荐算法测试。
二、项目展示
目 录
一、设计思路
先进行需求分析,得出需要实现的功能,
再进行数据库表的设计,数据表通过主外建实现关联关系
然后是页面设计,页面设计使用bootstrap样式
接着是系统代码的开发,基础功能实现后是进行算法实现
二、框架描述
开发框架使用经典的django框架,这也是python web开发的主流框架
采用了MTV的框架模式,即模型M,视图V和模版T,
通过pycharm创建一个新的django框架项目,pycharm会生成django的基本配置,
直接运行后就可以在浏览器访问django默认首页
我们只是在生成的框架中添加自定义模块功能
django框架工作流程
1、用manage .py runserver 启动Django服务器时就载入了在同一目录下的settings.py。
该文件包含了项目中的配置信息,如前面讲的URLConf等,
其中最重要的配置就是ROOT_URLCONF,
它告诉Django哪个Python模块应该用作本站的URLConf,
默认的是urls.py
2、当访问url的时候,Django会根据ROOT_URLCONF的设置来装载URLConf。
3、然后按顺序逐个匹配URLConf里的URLpatterns。
如果找到则会调用相关联的视图函数,并把HttpRequest对象作为第一个参数(通常是request)
4、最后该view函数负责返回一个HttpResponse对象。
三、数据库的设计
数据库设计是使用navicat来创建,操作非常简便
四、算法的实现都是使用python常规函数,严格按照算法步骤实现(算法步骤代码注释很详细)
1、auth_group:管理员权限管理中的 组表,一个组中可以有多个功能
2、auth_group_permissions:管理员权限管理中的 组权限表,一个组有哪些功能
3、auth_permission:管理员权限管理中的 功能表,
默认的我们添加的每个表都有增删改查功能
4、auth_user:管理员权限管理中的 管理员表
5、auth_user_groups:管理员权限管理中的 管理员组表,即一个管理员在哪个组中
6、auth_user_user_permissions:管理员权限管理中的 管理员权限表,
即一个管理员可以有哪些权限功能
7、django_admin_log:管理员操作日志表,记录管理员的增删改查动作
8、django_content_type:内容类型
9、django_migrations:记录由实体类生成表的信息
10、django_session:前台用户和后台管理员登录的session信息