码云:https://gitee.com/ming_cpp/meiduo18
美多商城商业模式:
C2B模式(消费者到企业的商业模式),相类似网站包括:京东,淘宝,海尔商城,尚品宅配等。
商城需求分析*
1,用户部分
2,商品部分
3,购物车部分
4,商品订单备份
5,用户支付部分
6,上线程序的配置
用户部分模块:
基本功能:用户注册,登录,密码的重置,第三方登录
用户注册
1,图片验证码
流程分析:
1,前端生成uuid随机字符串
2,后端生成图片验证码发送给前端,将图形验证码的存入到redis中
2,短信验证码
1,检查图片的验证码
2,检验是否是在60s内是否已经发送过
3,生成短信验证码
4,保存发送的短信验证码
5,发送短信(第三方平台发送:云通讯)
3,判断用户名是否存在
1,用户输入用户名之后ajax局部刷新页面
2,后台查询数据库用户是否存在
3,返回数据给前端
4,判断手机号码是否已经存在
同3
技术点:前后端的域名不相同,涉及到csrf跨站请求伪造的问题;
Csrf相关概念:
1,域=协议+域名+端口,在两个域中,以上三者中任意一个条件不同,均涉及到跨域的问题;
2,浏览器的策略
1,对于简单的请求,浏览器发送请求,但是得到请求之后会检验响应头中是否有当前的域中,如果没有则会在浏览器中报错;
2,对于复杂的请求,浏览器会先发送一个option请求,询问服务器是否支持跨域,如果响应头中的域名允许,才会发送相对应的请求来获取数据,并交给js进行处理。
3,Python的django中的跨域处理的相关模块django-cors-headers
**技术点:前端用户将图片验证码发送给后台之后,第三方平台发送短信的过程中会有网络的阻塞程序继续往下执行,进而影响用户体验效果;
解决方案:采用celery进行短信验证码的异步发送;**
Celery概念:分布式异步任务队列调度框架:
1,支持定时任务和异步任务两种方式
2,组成:大概分为四个部分client客户端发送数据,broker中间件(redis数据库,消息队列),worker(任务的执行者),backend&#x