Skip to content

skytotwo/bookstore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

开发环境与工具

  • 开发环境:Ubuntu 16.04
  • 开发工具:PyCharm 2017.3.4
  • 开发语言:Python 3.5.2
  • 后端框架:Django 2.0.2
  • 前端框架:Bootstrap 3.3.7

主要模块

  1. Authentication:该模块主要用于用户的注册、登录、登出等需要验证或记录个人信息的操作
  2. Users:该模块主要用于修改用户个人设置、下单、订单信息等用户相关的操作
  3. Books:该模块主要用于展示图书详情、获取某类别下的图书等图书相关操作
  4. Carts:该模块主要用于加入购物车、移除购物车中的图书、修改购物车中图书的数量,选中图书结算等购物车相关操作
  5. Manages:该模块主要用于返回网站首页等管理网站内容相关操作
  6. Utils:该模块主要用于存放辅助函数
  7. Admin:该模块主要用于后台数据库管理,包括用户数据、图书数据、网站内容等数据库管理操作
  8. 定位:引入了高德IP定位API
  9. 支付:由于引入支付宝、微信或银联不是很必要,所以省了

角色描述

  1. 匿名用户:匿名用户仅仅能浏览网站首页和各个类别下的图书,以及查看图书详情,除此之外,需要用户先注册才有权限操作
  2. 登录用户:用户登录之后可以查看图书评论、修改个人设置、加入购物车、修改图书数量、选中图书结算、下单、查看订单等操作
  3. 管理员:管理员可以登录后台管理系统,具有添加、删除、查找、修改数据库中的用户、图书、订单等数据的权限,主要负责订单监控和网站内容管理相关操作

网站主要功能流程图

关键问题

分页

网站中许多页面需要分页功能,比如各个类别下的图书、评论、订单等,只需要在URL中加入页面参数,后端返回该页面的内容即可,默认为第1页。

购物车的实现

由于需要保存用户的购物车状态,所以实现了基于数据库的购物车,使每个用户注册时自动初始化一个属于该用户的购物车。

用户将图书加入购物车时,创建一个购物车项目,包含图书外键、数量、是否选中、所属订单等信息,每个购物车项目只能属于一个购物车,一个购物车可以有多个购物车项目,购物车项目也保存在数据库中。

用户可以在购物车中修改购物车项目的数量,可以加一、减一或者直接更新数量,用户下单时需要选中购物车项目,点击下单后,被选中的购物车项目会被加入订单的购物清单中。

订单包括收货地址外键、下单时间、支付金额、支付方式等基本信息,用户付款之后,需要将购物车中被选中的购物车项目的所属购物车外键设为null,意为从购物车中将已下单的购物车项目移除,已下单的购物车项目会被一直保存到用户自己主动删除订单

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

网站截图

About

Django 实现的网上书店

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published