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实现字段验证
项目构成:
- vue前端项目
- django rest framework系统实现前台功能
- 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
前后端分离的优点:
- pc、移动端多端适用
- SPA开发模式流行
- 前后端职责不清
- 开发效率,前后端相互等待
- 前端一直配合后端能力有限
- 后端开发语言与模板高度耦合,导致开发语言依赖严重
前后端分离缺点:
- 前后端学习成本增加
- 数据依赖导致文档重要性增加
- 前端工作量增加
- SEO的难度增加
- 后端开发模式迁移增加成本
Vue基本概念
- 前端工程化
- 数据双向绑定
- 组件化开发
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
使用centry实现错误日志监控
github centry源码:
https://github.com/getsentry/sentry
所有评论(0)