开始学习的实现
当我们点击开始学习按钮时,要跳转到相应课程的章节信息以及视频资源等内容的页面。
所以首先把哪个页面复制到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的外边,这样,只要点击了长方形的框就能够跳转了。
网友评论