django知识点总结三
1. 为什么要开发“学城”?
- 提高在线 完课率(学成率)。
- 具体:
- 购买时间周期
- 闯关式学习
- 考核
- 导师筛选
- 导师监督(跟进记录)
- 答疑时间(12小时)
- 奖惩措施
- 时间
- 作业
2. 开发周期和团队?
团队:
- 开发
- 导师后台,stark组件+rbac : 1人
- 管理后台,stark组件+rbac : 1人
- 主站
- vue.js 1人
- api 村长+1/2文州+1/2Alex+其他 + 村长
- 运维(1人)
- 测试(1人)
- 产品经理(1人)
- UI设计(1人)
- 运营(1人)
- 销售(4人)
- 全职导师(2人)
- 签约讲师(...)
周期:
- 7月份
- 11月份上线
- 11月份~次年5月份: 修Bug,活动支持,广告。。。
- 6月份:开发题库系统
3. 购买流程
- 加入购物车
- 去结算
- 去支付
1. 路飞学城的购物车如何实现?
2. 商品是否有个数?
- 价格策略(用事件来类比个数)
- 购买之后就开始计时
3. 购物车在redis的结构?
4. 购物车购买数量有限制吗?
.keys('xxxxx')
5. 购物车是否设置超时时间?
.conn.expire("shopping_car_1_1" ,60*30)
方案:购买课程个数限制(200个)
6. 为什么把购物车信息放入redis?
- 临时状态
- 频繁修改的话,速度快。
7. 具体购物车的逻辑?
添加:
1. 用户选择:课程、价格策略,提交
2. 获取课程、价格策略进行合法性校验(数据库查询)
3. 数据获取,构造结构:
{
shopping_car_用户ID_课程ID:{
title:"...",
img:'xxx',
policy:{
...
}
}
}
4. 将数据以字典的形式保存到redis中。
修改:
1. 用户选择:课程、价格策略,提交
2. 获取课程、价格策略进行合法性校验(redis查询)
3. 更新价格策略
删除:
1. 用户选择:课程提交
2. 获取课程合法性校验(redis查询)
3. 删除
查看:
1. 构造Key shopping_car_用户ID_*
2. scan_iter
8. 原则:
- 简答逻辑先处理
- try
- 细粒度异常+自定义异常
- 导入模块
- 内置
- 框架
- 自定义
- 注释
- 文件
- 类
- 函数
- 文件名、类、函数、project
- 对功能进行分类
- 减少代码层级
- BaseResponse
Q补充:
con = {
"id":1,
"age__gt":9,
"name__lt": 8
"name__lt": 8
}
# 构造AND
models.User.objects.filter(**con)
# 构造复杂(条件写死)
con = Q(Q(account=request.auth.user) & Q(status=0)) | Q(coupon__valid_begin_date__lte=ctime)
models.User.objects.filter(con)
# 构造负责(条件动态)
q1 = Q()
q1.connector = 'OR'
for k,v in con.items():
q1.children.append((k,v,))
models.User.objects.filter(q1)