路飞学城

项目结构

  • 导师后台
  • 管理后台
  • 主站

组织结构

开发:
    主站
        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部分

posted @ 2018-04-23 15:49  瓜田月夜  阅读(841)  评论(0编辑  收藏  举报