【Django REST framework电商项目笔记】第01章 项目简介

1. 开发环境

  1. 开发工具: Pycharm
  2. 开发环境: Python3.5/Python3.6+Django2.0.2
  3. 数据库: MySQL5.7
  4. 前端: nodejs+vue

2. 掌握的技术

  1. Vue + Django REST framework 前后端分离技术
  2. 彻底玩转 restful API 开发流程
  3. Django REST framework 的功能实现和核心源码分析
  4. Sentry完成线上系统的错误日志的监督和告警
  5. 第三方登录和支付宝支付的集成
  6. 本地调试远程服务器代码的技巧

3. 系统构成

  1. vue 前端项目( 已准备好 )
  2. Django REST framework 后端系统实现前台功能( 主要开发部分 )
  3. xadmin 后台管理系统( 后台控制 )

vue前端框架部分:

API 接口
Vue 组件 与 API 的交互
Vue 的项目组织结构分析

4. Django REST framework 技能

  • 通用view实现rest API接口
    apiview 方式实现 api
    genericView 方式实现 api 接口
    ViewSet 和 Router 方式实现 api 接口和 url 配置
    Django_filter 过滤器 searchFilter 搜索 OrderFilter 分页
    通用mixins

  • 权限和认证
    Authentication 用户认证设置
    动态设置 permission, authentication
    Validators 实现字段验证

  • 序列化和表单验证
    Serializer
    ModelSerializer
    动态设置 Serializer

  • 第三方接口登录, 支付宝支付
    json Web Token 实现登录验证
    手机注册( 发送短信验证码 )
    支付宝注册
    第三方登录

  • 进阶开发
    Django REST framework 部分核心源码解读
    文档自动化管理 ( docs/接口 )
    Django REST framework 的缓存
    throttling 对用户和 ip 进行限速( 对爬虫的一定限制 )

5. 开发中常见的问题

  • 本地系统不能重现的bug
  • api 接口出错不能及时的发现或难以找到错误栈
  • api 文档管理问题, html markdown
  • 大量的url配置造成url的配置越来越难以维护
  • 接口不及时取更新文档, 对方不知道如何去测试接口, 但写文档会话费大量的时间去维护
  • 为了防止爬虫, 我们需要针对 api 的访问频率进行限制, 比如一分钟, 一小时, 或者一天用户的访问- 频率限制问题
  • 某些页面将数据放入缓存, 可以加速某些 api 的访问速度

    商品分类的数据一般变动比较小, 可以放入缓存.

6. 开发中常见问题的解决方案

  • 通过 Pycharm 的远程服务器代码调试技巧, 不仅可以调试支付, 第三方登录, 还可以运行远程服务器代码来重现服务器上的 bug
  • 通过 Docker 搭建 sentry 来体验错误日志监控系统, 让我们不仅可以得到线上的错误栈, 还能及时在发生错误时收到邮件通知
  • 通过 drf( Django RESR framework, 以下简称drf ) 的文档自动化管理以及 url 的注册管理功能会让我们省去写开发文档的时间
  • drf 的文档管理功能不仅可以省去写文档时间, 还能直接在文档里面测试接口, 自动生成的 js 接口代码, shell 测试代码和 Python 测试代码
  • drf 提供的throttle 对于 api 进行访问频率的限制
  • 引入第三方框架来设置某些 api 的缓存

7. Django 进阶知识点

  • Django migrations 原理
  • Django 信号量
  • Django 从请求到响应的完整过程
  • 独立使用 Django 的 model

8. vue 知识点

  • Vue 技术选型分析
  • API 后端数据填充到 Vue 组件模板
  • Vue 代码结构分析( MVVM设计模式 )

9. 章节安排

  • 项目介绍以及开发环境的搭建
  • 设计数据库以及导入原始数据, 其它资源导入
  • restful api 介绍以及 vue 项目结构介绍
  • 商品列表页功能开发
  • 商品类别功能和vue展示
  • 手机注册( 短信验证码 )和用户登录
  • 商品详情页和收藏功能
  • 个人中心功能开发
  • 购物车, 订单和支付宝支付功能
  • 首页轮播图, 商品数量, 缓存, 访问限速功能开发
  • 第三方登录( 微博, QQ, 微信 )的接口实现
  • sentry 实现系统错误日志监控

10. 技术储备要求

  • Django 基础知识
  • 熟练掌握Python3语法
  • 了解Vue & MySQL 基础

11. 系统功能

  1. 商品
  • 分类 - 子分类 搜索 热搜词 购物车简要展示
  • 新品 分类展示, 大类的推荐商品
  • 商品大类, 导航栏. 筛选, 排序. 富文本
  1. 用户登录注册
  • 账号密码登录( json Web Token ), 微博登录, 输入账号密码跳转回首页
  • 手机号码注册, 错误提示. 倒计时功能, 服务器端手机号码发送频次限制
  1. 交易
  • 商品 收藏 加入购物车 结算, 移出购物车
  • 支付宝支付, 扫码支付. 跳回商户页面
  • 订单详情, 收货地址
  1. 用户操作
  • 个人信息, 收藏商品, 我的收藏
  • 留言, 上传文件. 提交, 删除留言
  1. 系统优化
  • 快速浏览. 页面的缓存
  • 访问速度限制 & 接口文档 测试交互
  • 出错处理: sentry基于drf. 打印错误栈, 当前请求用户. 邮件通知

猜你喜欢

转载自blog.csdn.net/Yuyh131/article/details/82885475