- 开发环境:Ubuntu 16.04
- 开发工具:PyCharm 2017.3.4
- 开发语言:Python 3.5.2
- 后端框架:Django 2.0.2
- 前端框架:Bootstrap 3.3.7
- Authentication:该模块主要用于用户的注册、登录、登出等需要验证或记录个人信息的操作
- Users:该模块主要用于修改用户个人设置、下单、订单信息等用户相关的操作
- Books:该模块主要用于展示图书详情、获取某类别下的图书等图书相关操作
- Carts:该模块主要用于加入购物车、移除购物车中的图书、修改购物车中图书的数量,选中图书结算等购物车相关操作
- Manages:该模块主要用于返回网站首页等管理网站内容相关操作
- Utils:该模块主要用于存放辅助函数
- Admin:该模块主要用于后台数据库管理,包括用户数据、图书数据、网站内容等数据库管理操作
- 定位:引入了高德IP定位API
- 支付:由于引入支付宝、微信或银联不是很必要,所以省了
- 匿名用户:匿名用户仅仅能浏览网站首页和各个类别下的图书,以及查看图书详情,除此之外,需要用户先注册才有权限操作
- 登录用户:用户登录之后可以查看图书评论、修改个人设置、加入购物车、修改图书数量、选中图书结算、下单、查看订单等操作
- 管理员:管理员可以登录后台管理系统,具有添加、删除、查找、修改数据库中的用户、图书、订单等数据的权限,主要负责订单监控和网站内容管理相关操作
网站中许多页面需要分页功能,比如各个类别下的图书、评论、订单等,只需要在URL中加入页面参数,后端返回该页面的内容即可,默认为第1页。
由于需要保存用户的购物车状态,所以实现了基于数据库的购物车,使每个用户注册时自动初始化一个属于该用户的购物车。
用户将图书加入购物车时,创建一个购物车项目,包含图书外键、数量、是否选中、所属订单等信息,每个购物车项目只能属于一个购物车,一个购物车可以有多个购物车项目,购物车项目也保存在数据库中。
用户可以在购物车中修改购物车项目的数量,可以加一、减一或者直接更新数量,用户下单时需要选中购物车项目,点击下单后,被选中的购物车项目会被加入订单的购物清单中。
订单包括收货地址外键、下单时间、支付金额、支付方式等基本信息,用户付款之后,需要将购物车中被选中的购物车项目的所属购物车外键设为null,意为从购物车中将已下单的购物车项目移除,已下单的购物车项目会被一直保存到用户自己主动删除订单