23、Django实战第23天:视频播放页面

可莉 等级 501 0 0
标签: videodjango

打开素材course-play.html,会发现播放页面处了包含播放器,其他和“章节”页面一样。

1、把course-play.html复制到template目录下

2、把下面两段代码拷贝出来

<link rel="stylesheet" type="text/css" href="../css/video-js.min.css">
    <script src="../js/video.min.js" type="text/javascript"></script>

    <style>
        .video-js .vjs-big-play-button{
            top: 50%;
            left: 50%;
        }
    </style>





    <div style="width:1200px;height:675px; margin-left: 340px">
        <video id="example_video_1" class="video-js vjs-default-skin" controls preload="none" width="1200"
              poster="http://video-js.zencoder.com/oceans-clip.png"
              data-setup="{}">
            <source src="http://of66as8gb.bkt.clouddn.com/12.2%20xss%E6%94%BB%E5%87%BB%E5%8E%9F%E7%90%86%E5%8F%8A%E9%98%B2%E8%8C%83.mp4" type='video/mp4'>
        </video>
    </div>

3、拷贝course-video.html中所有的代码覆盖course-play.html, 并上上面两段代码编辑进去

23、Django实战第23天:视频播放页面

23、Django实战第23天:视频播放页面

4、编辑course.views.py

...
from .models import Video


class CourseVideoView(LoginRequiredMixin, View):
    def get(self, request, video_id):
        video = Video.objects.get(id=video_id)
        course = video.lesson.course
        all_resource = CourseResource.objects.filter(course=course)

        # 查询用户是否已经关联了该数据
        user_course = UserCourse.objects.filter(user=request.user, course=course)
        if not user_course:
            # 如果没有则写入数据库
            my_course = UserCourse(user=request.user, course=course)
            my_course.save()

        # 该同学还学过
        user_courses = UserCourse.objects.filter(course=course) #获取“用户课程”表里面该课程的所有记录
        user_ids = [user_course.user.id for user_course in user_courses] #获取学过该课程的所有用户id
        all_user_courses = UserCourse.objects.filter(user_id__in=user_ids) #获取这些用户学过的课程记录
        course_ids = [user_course.id for user_course in all_user_courses] #获取这些课程的id
        relate_courses = Course.objects.filter(id__in=course_ids).order_by('-click_nums')[:5] #根据点击量取出5个

        return render(request, 'course-play.html', {
            'course': course,
            'all_resource': all_resource,
            'relate_courses': relate_courses,
            'video': video,
        })

5、配置url

...
from .views import  CourseVideoView


urlpatterns = [
    ...
    url(r'video/(?P<video_id>\d+)/$', CourseVideoView.as_view(), name='course_video'),

]

6、前端页面配置,course-play.html

23、Django实战第23天:视频播放页面

7、编辑course-video.html,当点击进入到视频播放页面的链接

23、Django实战第23天:视频播放页面

8、在xadmin后台给相应的视频URL加上七牛视频地址就可以了

收藏
评论区

相关推荐

3、Django命令行工具
###一、命令行工具### django-admin.py是Django的一个用于管理任务的命令行工具,manage.py是对django-admin.py的简单包装,每个Django Project里面都会包含一个manage.py 语法: root># django-admin.py <subcommand> [options]
23、Django实战第23天:视频播放页面
打开素材course-play.html,会发现播放页面处了包含播放器,其他和“章节”页面一样。 1、把course-play.html复制到template目录下 2、把下面两段代码拷贝出来 <link rel="stylesheet" type="text/css" href="../css/video-js.min.css">
Django 2.0.3安装
OS:Windows 10家庭中文版,CPU:Intel Core i5-8250U Python版本:Python 2.7,Python 3.6 Django版本:2.0.3(最新2.0.5) **解压工具:7-zip 64位版** 目标:将Django 2.0.3安装到Python 3.6 在看了一些文章后,发现安装Django的方式有两种:基
Django Drops
**1.Django Intro** ------------------ ![Django Archite](https://oscimg.oschina.net/oscnet/aa07f912f646b3bf567d5b9bba9398d1435.png) **2.Django Install** -------------------- ###
Django Simple Captcha的使用
Django Simple Captcha的使用 ------------------------ ### 1、下载Django Simple Captcha django-simple-captcha官方文档地址 [http://django-simple-captcha.readthedocs.io/en/latest/](https://www
Django 资源 与 知识 Django中自建脚本并使用Django环境 model中的save()方法说明 filter()用法
Django 资源 与 知识 Django中自建脚本并使用Django环境 model中的save()方法说明 filter()用法 2018/11/06 Chenxin 资料说明 Django基础入门 [http://www.liujiangblog.com/blog/36/](https://www.oschina.net/action/GoToLin
Django1.8 django
### startproject和startapp #### [](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgithub.com%2Fdonhui%2Flearndjango%2Fblob%2Fmaster%2Fdocs%2FDjango1.8-django-admin-and-m
Django【第12篇】:Django之中间件
自定义验证规则以及中间件简单介绍 ================ 1、python2和python3中的区别 ![复制代码](https://oscimg.oschina.net/oscnet/47ed19d33ea2d94f58e1b2015c092ac5bfd.gif) 对于python2内置的字符串类型有str和unicode
Django【第19篇】:Django之extra
extra过滤 ======= extra ===== extra(select=None, where=None, params=None, tables=None, order_by=None, select_params=None) 有些情况下,Django的查询语法难以简单的表达复杂的 WHERE 子句,对于这种情况, Dj
Django之Web框架本质和Django实例
[Django之Web框架本质及第一个Django实例](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fwww.cnblogs.com%2Faaronthon%2Fp%2F8962849.html) =============================================
Django框架
django框架 ======== 第一篇: [Django简介](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fwww.cnblogs.com%2FDominic-Ji%2Farticles%2F10982272.html) 第二篇: [路由控制](https://www.oschi
Flask, Django
### 1\. 目录结构 一般情况下,Django很系统、统一。Flask项目目录风格不同一,即使用上了蓝图。 ### 2\. 数据库迁移 Flask要用第三方extensions,而Django自带,这个很方便。 ### 3\. 模块化 Flask是用蓝图。Django可以自动生成`python manage.py startapp <app_n
Flask最强攻略
首先,要看你学没学过Django 如果学过Django 的同学,请从头看到尾,如果没有学过Django的同学,并且不想学习Django的同学,轻饶过第一部分 ### 一. Python 现阶段三大主流Web框架 Django Tornado Flask 对比 1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form
Pycharm+Django+Python+MySQL开发 后台管理数据库
Django框架十分简单易用,适合搭建个人博客网站。网上有很多教程,大多是关于命令行操作Django,这里分享一些用最新工具进行Django开发过程,主要是PyCharm太强大,不用有点可惜。 第一次写技术开发类的博文,可能抓不到重点,详略也可能失衡,感谢支持。 环境&工具:Windows server 2012  , PyCharm 2016.2.1
tango with django(第三章 Django基础)
3.1 测试你的配置 python --version   如果你使用了虚拟环境,不要忘记激活。   确定django是否安装好。 Python 2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609] on linux2 Type "help", "c