vue+django+restful framework ForYou2.0

1.技术储备

1.1项目get到的技能

  • vue+django rest framework 前后端分离技术
  • 玩转restful api开发流程
  • django rest framework 的功能实现和核心源码分析
  • sentry完成线上系统 的错误日志的监控和告警
  • 第三方登录和支付宝的集成

1.2django rest framework技能

通过view实现rest api的接口:

  • ApiView方式实现api
  • GenericView方式实现api接口
  • Viewset和router方式实现api接口和url配置
  • django_filter、SearchFilter、OrderFilter、分页
  • 通用的mixins

权限和认证:

  • Authentication用户认证设置
  • 动态设置permission、Authentication
  • Validators实现字段验证

 

 

 项目构成:

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

 

 1.3支付、登录和注册

  • json web token实现登录认证
  • 手机注册
  • 支付宝支付
  • 第三方登录

 

1.4项目特色

  • 文档自动化管理
  • django rest framework的缓存
  • throttling对用户和ip进行限速

1.5项目开发常见问题

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

1.6项目中常见问题解决方案:

  • 通过pycharm可以调试远程服务器的代码,如调试支付、第三方登录重现服务器上的bug
  • 通过docker搭建sentry来体验错误日志监控系统,让我们及时通过邮箱知道线上的错误栈
  • django rest framework的文档自动化管理以及url的注册管理功能会让我们省去写文档的时间
  • django rets framework的文档可以测试接口、自动生成js接口代码、支持shell和python的测试代码

2.项目搭建

2.1项目环境搭建

vue环境搭建

  • nodejs
  • cnpm

运行vue项目:

  •  cnpm install
  • cnpm  run dev

 

前后端分离的优点:

  1. pc、移动端多端适用
  2. SPA开发模式流行
  3. 前后端职责不清
  4. 开发效率,前后端相互等待
  5. 前端一直配合后端能力有限
  6. 后端开发语言与模板高度耦合,导致开发语言依赖严重

前后端分离缺点:

  1. 前后端学习成本增加
  2. 数据依赖导致文档重要性增加
  3. 前端工作量增加
  4. SEO的难度增加
  5. 后端开发模式迁移增加成本

 

Vue基本概念

  1. 前端工程化
  2. 数据双向绑定
  3. 组件化开发

webpack

vue,vuex,vue-router,axios

ES6,babel

2.2项目模型设计

用户登录和注册

用户认证

前后端分离之jwt

jwt认证原理文档:

https://lion1ou.win/2017/01/18/

github源码:

https://github.com/jpadilla/django-rest-framework-jwt

网站优化

1、drf配置缓存

使用redis配置缓存

 

2、drf限制访问速率

 

第三方登录

https://github.com/python-social-auth/social-app-django

 vue+django+restful framework ForYou2.0_第1张图片

 

 

使用centry实现错误日志监控

github centry源码:

https://github.com/getsentry/sentry

 

转载于:https://www.cnblogs.com/yunwangjun-python-520/p/11384936.html

你可能感兴趣的:(vue+django+restful framework ForYou2.0)