潭州课堂25班:Ph201805201 django 项目 第三十一课 在线课堂视频点播的实现(课堂笔记)...

本文主要是介绍潭州课堂25班:Ph201805201 django 项目 第三十一课 在线课堂视频点播的实现(课堂笔记)...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在线课堂

 

一、数据库模型设计

# 在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视频点播券

  • 开通"视频点播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 render
from . 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 Http404
from django.shortcuts import render
from 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

这篇关于潭州课堂25班:Ph201805201 django 项目 第三十一课 在线课堂视频点播的实现(课堂笔记)...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/299596

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

电力系统中的A类在线监测装置—APView400

随着电力系统的日益复杂和人们对电能质量要求的提高,电能质量在线监测装置在电力系统中得到广泛应用。目前,市场上的在线监测装置主要分为A类和B类两种类型,A类和B类在线监测装置主要区别在于应用场景、技术参数、通讯协议和扩展性。选择时应根据实际需求和应用场景综合考虑,并定期维护和校准。电能质量在线监测装置是用于实时监测电力系统中的电能质量参数的设备。 APView400电能质量A类在线监测装置以其多核

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount