简介
我一向喜欢在实际动手的过程中去学习新技能。因此当我从《python核心编程》这本书上接触到django这个web框架的时候,我头脑中的第一反应就是,搞个“大项目”,一来可以学习技能,二来可以丰富阅历。说不定还能为我之后的求职提供一点儿帮助。
所以我打算用django开发一个仿天猫网站。
App设计
django项目的开发是围绕app的,一个项目由多个相对独立的app组成,在这个项目中,我设计了三个app,分别是:
- user 用户模块,实现用户的登陆、注册、找回密码等等围绕用户的功能。
- product 商品模块,商品模块就是围绕商品展示的,核心是商品详情页面,之后还有分类页面和首页等。
- operation 订单模块,设计app时我想的是所有用户操作,但实际上用户操作分为两类,一类是关于账号的,另一类就是围绕订单的。
user用户模块设计
django提供了用户登陆登出的函数,只需要调用即可。在此我使用第三方库实现了注册码功能。同时,通过设置系统邮箱给用户发送账号激活邮件和找回密码邮件。我还计划在之后的时间开发用户个人中心页面,完成用户修改头像、昵称和密码的功能。
product商品模块
商品主要是围绕商品、分类和属性展开的。通过分析可知,多个商品对应一个分类。一个属性对应的多个属性值,分属于不同的商品。同时,一个商品又包含多张产品图片。这些都是在设计数据表的时候用得上的。
operation订单模块
订单模块稍复杂一些,首先要理解订单和订单项的关系,一个订单包含多个订单项。同时,在最开始创建订单项时,并未关联订单,因此这个订单外键是可以为空的。没有关联订单的订单项也就是在“购物车”中的订单项。一个订单项对应一种商品。
购物车页面,应该是本项目中最复杂的前端页面。我在制作时也是研究了很久。
表关系梳理
通过梳理可知,在本项目中,并不存在多对多关系,均为一对多关系,这也让数据库知识薄弱的我侥幸了一下。
一 | 多 |
---|---|
分类 | 产品 |
属性 | 属性值 |
产品 | 属性 |
产品 | 评价 |
用户 | 订单 |
产品 | 订单项 |
用户 | 订单项 |
订单 | 订单项 |