2020-05-15--Django项目14--coursevi

2020-05-15  本文已影响0人  program_white

开始学习的实现

当我们点击开始学习按钮时,要跳转到相应课程的章节信息以及视频资源等内容的页面。



所以首先把哪个页面复制到templates文件夹下:



配置url:
在url中要接受一个位置参数(用户点击具体课程的id)

courses/urls.py:

#导入CourseLessonView
    #章节信息
    url(r'^(?P<course_id>\d+)/lesson/$',CourseLessonView.as_view(),name='lesson')

courses/view.py:

#课程章节页
class CourseLessonView(View):
    '''
    章节信息的展示
    '''
    def get(self,request,course_id,*args,**kwargs):
        #获取用户点击的是哪个课程
        course = Course.objects.get(id = course_id)
        return render(request,'coursevideo.html',{
            'course':course
        })

返回coursevideo页面。
运行:

127.0.0.1:8000/course/1/lesson

成功显示。但是没有样式。
配置coursedetail.html中的开始学习按钮的跳转链接



运行:
点击立即学习后:



显示。
到这里前后端之间的跳转连接成功。

使用模板继承优化代码


值得注意的是:在面包屑中设置跳转链接时,要给课程详情的连接中传递一个课程的id,这个课程的也就是coursevideo页面展示内容的课程id。



运行:



当点击开始学习:

现在显示的是假数据。

进行数据绑定

1.首先要替换的内容为:



前端代码展示:



2.然后就要进行绑定章节信息和章节下的视频了。
首先要在xadmin中添加章节信息和章节包含的视频连接。
给课程--一小时学会Flask增加了三个章节:



给每一章增加了三个视频内容。



前端代码绑定数据:
章节的展示是需要循环显示的
找到这部分代码:

查询章节信息,进行循环遍历,然后绑定:



在章节中,还要查询视频信息,遍历显示,并绑定:

这里也可以在后台view.py中实现,在后台查询好数据后,传到前台,前台代码更简洁。
运行:

显示完成。

logout的实现

在登录状态时,有一个退出登录的按钮。


找到退出按钮的html代码,实在base.html中,用于继承。
在之前的登陆判断中有该部分代码。
base.html:

修改一下href值:

进入url匹配:
这部分实在总项目中的urls.py的,添加:
from apps.users.views import LoginView,LogoutView
    #退出登录
    path('logout/',LogoutView.as_view(),name = 'logout'),

在view.py中编写视图类:
在login时使用了django自带的login方法,它也有logout方法供我们使用。


#退出登录
class LogoutView(View):
    def get(self,request,*args,**kwargs):
        #退出登录
        logout(request)
        #重定向到index页面
        return HttpResponseRedirect(reverse('index'))

运行:



点击退出:



完成。
提交GitHub。

补充:
修改coursedetail.html中立即学习按钮放入代码:



把a标签放在div的外边,这样,只要点击了长方形的框就能够跳转了。

上一篇 下一篇

猜你喜欢

热点阅读