博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
潭州课堂25班:Ph201805201 django 项目 第三十一课 在线课堂视频点播的实现(课堂笔记)...
阅读量:5143 次
发布时间:2019-06-13

本文共 4230 字,大约阅读时间需要 14 分钟。

在线课堂

 

一、数据库模型设计

# 在apps/course/models.py中定义如下模型:
from django.db import modelsfrom utils.models import ModelBaseclass Teacher(ModelBase):    name = models.CharField(max_length=150, verbose_name="讲师姓名", help_text='讲师姓名')    positional_title = models.CharField(max_length=150, verbose_name="职称", help_text='职称')    profile = models.TextField(verbose_name="简介", help_text='简介')    avatar_url = models.URLField(default="", verbose_name="头像url", help_text='头像url')    class Meta:        db_table = "tb_teachers"  # 指明数据库表名        verbose_name = "讲师"  # 在admin站点中显示的名称        verbose_name_plural = verbose_name  # 显示的复数名称    def __str__(self):        return self.nameclass CourseCategory(ModelBase):    name = models.CharField(max_length=100, verbose_name="课程分类名", help_text='课程分类名')    class Meta:        db_table = "tb_course_category"  # 指明数据库表名        verbose_name = "课程分类"  # 在admin站点中显示的名称        verbose_name_plural = verbose_name  # 显示的复数名称    def __str__(self):        return self.nameclass Course(ModelBase):    title = models.CharField(max_length=150, verbose_name="课程名", help_text='课程名')    cover_url = models.URLField(verbose_name="课程封面图URL", help_text='课程封面图URL')    video_url = models.URLField(verbose_name="课程视频URL", help_text='课程视频URL')    duration = models.FloatField(default=0.0, verbose_name="课程时长", help_text='课程时长')    profile = models.TextField(null=True, blank=True, verbose_name="课程简介", help_text='课程简介')    outline = models.TextField(null=True, blank=True, verbose_name="课程大纲", help_text='课程大纲')    teacher = models.ForeignKey(Teacher, on_delete=models.SET_NULL, null=True, blank=True)    category = models.ForeignKey(CourseCategory, on_delete=models.SET_NULL, null=True, blank=True)    class Meta:        db_table = "tb_course"  # 指明数据库表名        verbose_name = "课程"  # 在admin站点中显示的名称        verbose_name_plural = verbose_name  # 显示的复数名称    def __str__(self):        return self.title

  

  

 

二、百度云VOD点播功能

1.简介

百度 VOD (Video On Demand) 是百度云 BCE (Baidu Cloud Engine) 提供的面向音视频点播的 PaaS (Platform as a Service) 服务平台,为开发者提供音视频文件的存储、管理及播放服务。您无需了解音视频存储、转码、加密、分发、播放等技术细节,即可快速搭建安全可靠、高可定制的点播平台和应用。

 

2.注册登录上传测试视频

  • 打开百度云:https://cloud.baidu.com/

  • 可以使用已有的百度云盘账号登录

  • 下载百度云APP到手机中,使用刷脸认证

 

  • 认证成功之后,会赠送55元的VOD视频点播券

  • 开通""服务

 

上传测试视频 

 

# 在mysql数据库中添加你们自己的测试数据(如下数据仅仅是案例,不能正常导入)insert into tb_teachers (name, positional_title, profile, avatar_url, create_time, update_time, is_delete) values('Youkou', 'python高级讲师', '讲师简介', '/media/youkou.jpg', now(), now(), 0);insert into tb_course_category (name, create_time, update_time, is_delete) values('python基础', now(), now(), 0), ('python高级', now(), now(), 0), ('python框架', now(), now(), 0);insert into tb_course (title, cover_url, video_url, duration, `profile`, outline, teacher_id, category_id, create_time, update_time, is_delete) values('你的测试视频1名称', '你的测试视频缩略图URL', '你的测试视频URL', 10.5, '你的测试视频简介', '你的视频大纲', 1, 2, now(), now(), 0),('你的测试视频2名称', '你的测试视频缩略图URL', '你的测试视频URL', '你的测试视频时长为浮点型', '你的测试视频简介', '你的视频大纲', 1, 2, now(), now(), 0);

  

 

三、后端功能实现

课程列表视图

# 在apps/course/views.py中定义如下类视图:

# 在apps/course/views.py中定义如下类视图:from django.shortcuts import renderfrom . import modelsdef course_list(request):    courses = models.Course.objects.only('title', 'cover_url', 'teacher__positional_title').filter(is_delete=False)    return render(request, 'course/course.html', locals())

  课程详情视图

# 在apps/course/views.py中定义如下类视图:from django.http import Http404from django.shortcuts import renderfrom django.views import Viewfrom . import modelslogger = logging.getLogger('django')class CourseDetailView(View):    """    """    def get(self, request, course_id):        try:            course = models.Course.objects.only('title', 'cover_url', 'video_url', 'profile', 'outline',                                                'teacher__name', 'teacher__avatar_url',                                                'teacher__positional_title', 'teacher__profile').\                select_related('teacher').filter(is_delete=False, id=course_id).first()            return render(request, 'course/course_detail.html', locals())        except models.Course.DoesNotExist as e:            logger.info("当前课程出现如下异常:\n{}".format(e))            raise Http404("此课程不存在!")

  

转载于:https://www.cnblogs.com/gdwz922/p/10212544.html

你可能感兴趣的文章
mysql中没有join吗,mysql – SQL Join,包括表a中的行,表b中没有匹配项
查看>>
php7.2 pdo简单应用,php pdo 简单使用 (一) - pdo
查看>>
字幕下载下来是php文件,剪映字幕导出为SRT文件网页版
查看>>
matlab在自动控制中...,实验一 Matlab在自动控制理论中的应用
查看>>
php随机生成文章,PHP生成随机字符串的技巧
查看>>
Linux内核存储接口,内存管理 – Linux内核API kcalloc
查看>>
c语言除法的数据类型,c语言数据类型运算的注意
查看>>
android模拟器游戏大全,安卓模拟器游戏大全_小鸡模拟器
查看>>
android%3cspan,Microsoft 365 Apps update channel name changes: iOS, Mac, and Android
查看>>
js生成GUID
查看>>
JdbcTemplate
查看>>
利用PreparedStatement预防SQL注入
查看>>
saltsack自动化配置day01:之SaltStack快速入门(一)
查看>>
剑指offer-----回溯和其他
查看>>
Java核心技术卷1-第三章-Java的基本程序设计结构
查看>>
从C++到Java的几点区别
查看>>
【牛客Wannafly挑战赛12】小H和圣诞树
查看>>
[AH2017/HNOI2017]单旋
查看>>
[SNOI2017]一个简单的询问
查看>>
【CF900D】Unusual Sequences
查看>>