1 celery,分布式异步任务框架,异步,定时,延迟任务
-APScheduler
2 包管理方式
-在项目根路径建立一个包
-celery.py --->把celery的对象实例化出来,本地化,定时任务
-写很多task文件
-在使用的位置,导入,调用
-任务(函数).delay()
-启动worker
-启动beat:如果有定时任务
-任务.apply_async(args=[参数],时间对象)
3 定时更新缓存的任务(异步更新)
-mysql和redis双写一致性
-定时更新
-新增一条直接删除缓存(更新缓存)
-先删缓存,再存数据
-celery使用django,必须让djagno运行
3 课程相关表分析
-课程分类表
-课程表
-老师表
-章节表
-课时表
4 复制课程列表页面
5 查询所有分类的接口
6 查询所有课程接口
-加入分页
-加入排序
-过滤:课程分类过滤
-区间过滤
1 课程列表前端
<template>
<div class="course">
<Header></Header>
<div class="main">
<!-- 筛选条件 -->
<div class="condition">
<ul class="cate-list">
<li class="title">课程分类:</li>
<li :class="filter.course_category==0?'this':''" @click="filter.course_category=0">全部</li>
<li :class="filter.course_category==category.id?'this':''" v-for="category in category_list"
@click="filter.course_category=category.id" :key="category.name">{{category.name}}
</li>
</ul>
<div class="ordering">
<ul>
<li class="title">筛 选:</li>
<li class="default" :class="(filter.ordering=='id' || filter.ordering=='-id')?'this':''"
@click="filter.ordering='-id'">默认
</li>
<li class="hot" :class="(filter.ordering=='students' || filter.ordering=='-students')?'this':''"
@click="filter.ordering=(filter.ordering=='-students'?'students':'-students')">人气
</li>
<li class="price"
:class="filter.ordering=='price'?'price_up this':(filter.ordering=='-price'?'price_down this':'')"
@click="filter.ordering=(filter.ordering=='-price'?'price':'-price')">价格
</li>
</ul>
<p class="condition-result">共{{course_total}}个课程</p>
</div>
</div>
<!-- 课程列表 -->
<div class="course-list">
<div class="course-item" v-for="course in course_list" :key="course.name">
<div class="course-image">
<img :src="course.course_img" alt="">
</div>
<div class="course-info"