Django REST framework+Vue 打造生鲜超市(一)

一、项目介绍

1.1.掌握的技术

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

1.2.系统构成

  1. vue前端项目
  2. django rest framework 系统实现前台功能
  3. xadmin后台管理系统

vue部分:

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

Django Rest Framework 技能

  • 通用view实现 rest api接口
    • apiview方式实现api
    • genericView方式实现api接口
    • Viewset和router方式实现api接口和url配置
    • Django_filter searchFilter OrderFilter 分页
    • 通用mixin
  • 权限和认证;
    • Authentication用户认证设置
    • 动态设置permission、authentication
    • Validators实现字段验证
  • 序列化和表单验证
    • Serializer
    • ModelSerializer
    • 动态设置Serializer
  • 支付登录注册
    • json web token 实现登录
    • 手机注册
    • 支付宝支付
    • 第三方登录
  • 进阶开发
    • Django rest framework 部分核心源码解读
    • 文档自动化管理
    • django rest framework的缓存
    • throttling 对用户和ip进行限速

1.3.开发中常见的问题

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

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

  1. 通过介绍pycharm 的远程服务器代码调试技巧让大家不仅可以调试支付,第三方登录,还可以远程服务器代码来重现服务器上的bug
  2. 通过docker 搭建 sentry 来体验错误日志监控系统,让我们不仅可以得到线上的错误栈还能及时在发生系统错误时收到邮件通知。
  3. 通过drf的文档自动化管理以及url的注册管理功能会让我们省去写文档的时间
  4. django rest framework 的文档管理功能不仅可以让我们省去写文档的时间,还能直接在文档里面测试接口,自动生成js接口代码,shell测试代码和python测试代码
  5. django rest framework 提供的throttle 对于api进行访问频率的限制
  6. 引入第三方框架来设置某些api的缓存

1.5.django进阶知识点

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

1.6.vue知识点

  • vue技术选型分析
  • API后端数据填充到Vue组件模板
  • Vue代码结构分析

1.7.章节安排

  • 项目介绍以及开发环境的搭建
  • 设计数据库以及导入原始数据
  • restful api基础以及vue项目结构介绍
  • 商品列表页功能
  • 商品类别功能
  • 手机注册和用户登录
  • 商品详情页和收藏功能
  • 个人中心功能
  • 购物车、订单和支付宝支付功能
  • 首页,商品相关数量,缓存,访问限速功能
  • 第三方登录(微博 qq 微信)
  • sentry系统错误日志监控

1.8.技术储备要求

  • django基础知识
  • 熟练掌握python语法
  • 了解vue & mysql基础

1.9.系统功能

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

二、环境搭建

2.1.虚拟环境搭建

(1)环境变量设置

  • 桌面新建文件夹Envs
  • 新建环境变量:以后创建虚拟环境会自动保存到这个路径

(2)安装

pip install virtualenv

pip install virtualenvwrapper-win
  
mkvirtualenv DjangoProject    #创建虚拟环境

workon                       #查看有哪些虚拟环境

workon DjangoProject      #进入创建的虚拟环境

deactivate.bat      #退出虚拟环境

activate.bat        #激活虚拟环境

2.2.Vue环境搭建

(1)node.js

https://nodejs.org/en/

(2)cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

(3)安装依赖

cnpm install

(4)运行

cnpm run dev

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大内老A

WCF中并发(Concurrency)与限流(Throttling)体系深入解析系列[共7篇]

服务(Service)的本质就是提供服务消费者期望的某种功能,服务的价值体现在两个方面:服务本身的质量和寄宿服务的平台应付消费者的数量,并发(Concurren...

19860
来自专栏安恒信息

揭密HTML 5带来的攻击手法

HTML5 是下一代的HTML,HTML5赋予网页更好的意义和结构。更加丰富的标签将随着对RDFa的,微数据与微格式等方面的支持,构建对程序、对用户...

37850
来自专栏张戈的专栏

BaiduSubmit:度娘WordPress结构化数据插件(改进版)

张戈博客曾多次提到一个会造成百度不收录问题的原因:如果网站存在实时推送机制(比如安装了百度官方推出的 BaiduSubmit 插件),那么发布文章后,在百度收录...

35950
来自专栏owent

atframework的etcd模块化重构

最近在抽时间整理之气的游戏服务器框架和解决方案里atsf4g-co,现在的架构是使用etcd的是atproxy。简单得说就是服务集群是分组的,每个分组有分组代理...

13620
来自专栏阿杜的世界

10个常见软件架构

原文参见:10 Common Software Architectural Patterns in a nutshell

20430
来自专栏腾讯移动品质中心TMQ的专栏

移动APP测试用例设计的关注点

在我们的测试工作中,对于某个APP的测试其实有很多东西都是类似的可以抽象出来的,这里june总结一下大部分APP测试的时候都要考虑到的方面。如果漏下了其他方面,...

286100
来自专栏运维技术迷

清空messages没有权限的解决方法

一大早接到报警提示系统盘容量不足了,冲到/var/log下查看messages日志已经很大了,所以就想着把messages清空一下,以此来释放空间.在删除的时...

362100
来自专栏魏艾斯博客www.vpsss.net

lnmp1.4 环境安装 memcached 和 object-cache.php 过程记录及内存缓存加速效果

32020
来自专栏aoho求索

几种分布式调用链监控组件的实践与比较(一)实践

引言:最近在调研与选型分布式调用链监控组件。选了主要的三种APM组件进行了实践与比较。本来打算一篇文章写完的,篇幅太长,所以分了两篇。本文主要讲下链路trace...

60080
来自专栏杨建荣的学习笔记

Windows环境下搭建Oracle 12c的体验

昨天准备一个Oracle环境,结果看起来是很简单的事情,却因为各种各样的原因耽搁了一些时间,从下载到安装部署,已经几个小时过去了,抬头看看,已经是凌晨快2点了。...

13600

扫码关注云+社区

领取腾讯云代金券