路飞学城
项目结构
- 导师后台
- 管理后台
- 主站
组织结构
开发: 主站 vue:1 rest api : 1 导师后台 django : 1 管理后台 django+stark : 1 运维: 1 测试:1 UI : 1 产品经理: 1 运营:3 销售:4 班主任:1 人事: 市场: 讲师:
项目周期
7月开始,11月上线
主站API
- 课程类 - 首页 - 课程列表 - 学位课列表 - 课程详细 - 章节 - 常见文件 - 课程评价 - 课程大纲 - 推荐课程 - 深科技 - 文章列表 - 文章详细 - 收藏 - 评论 - 个人中心 - 我的账户 - 我的订单 - 我的收藏 - 个人资料 - 账号安全 - 学习中心 - 我的课程 - 作业 - 课件下载 - 购买流程 - 加入购物车 - 去结算 - 立即支付 - 成功之后:修改订单状态+发送微信通知
技术点
rest_framework部分
# 组件: 路由: 视图: # 注意点,如果继承了ViewSet这些类,须有queryset属性,否则BrowsableAPIRenderer渲染器中会执行get_query方法() # ApiView返回只是return csrf_exempt(view),apiview中不存在csrf问题 版本: 认证: # 认证类的authenticate方法返回值有三, # 两个元素的元组,分别赋值给request.user和request.tuken # 抛出异常,验证失败 # 返回空,为request.user和request.tuken赋默认值 权限: 频率: 分页: 序列化: 解析器: 渲染器:
跨域请求:
跨域问题的产生 # 浏览器的同源策略 jsonp # jsonp是利用了script标签的特性,动态的生成script标签,只能发送get请求 cors # 本质上是添加请求头
redis
- 为什么用redis做购物车? - 频繁操作 - 中间状态 - 数据放入内容,快。 PS: - 也可以搞sessionsession - redis分布式锁
Django 的ContentType
# Django进行数据化迁移的时候会生成一张django_content_type表,里面记录了各个App中的模型类. # 我们的评论表以及价格策略表就是通过Content_type写在一张表上的 from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.fields import GenericForeignKey class PricePolicy(models.Model): content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() # 不在数据库中生成,只用于帮助你做数据操作,通过上面两个字段找到一条记录 content_object = GenericForeignKey('content_type', 'object_id') # 课程查价格 from django.contrib.contenttypes.fields import GenericRelation class Course(models.Model): name = models.CharField(max_length=32) # 数据库不生成,只用于链表查询 policy_list = GenericRelation("PricePolicy")
VUE部分