24django实战第24天:讲师列表页

何波安的博客 何波安的博客     2022-10-27     123

关键词:

1、复制teracher-list.html到templates目录下

2、编辑teacher-list.html,继承base模板

3、编辑organization.views.py

...
from .models import Teacher

class TeacherListView(View):
    def get(self, request):
        all_teachers = Teacher.objects.all()
        return render(request, \'teachers-list.html\', 
            \'all_teachers\': all_teachers,
        )

4、配置url,编辑organization.urls.py

...
from .views import TeacherListView

urlpatterns = [
    ...
    url(r\'teacher/list/$\', TeacherListView.as_view(), name=\'teacher_list\' ),

]

5、修改index.html,base.html中的授课教师链接

 6、先把所有的讲师都展示出来

 

分页

编辑organization.views.py

class TeacherListView(View):
    def get(self, request):
        all_teachers = Teacher.objects.all()
               
        # 分页
        try:
            page = request.GET.get(\'page\', 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(all_teachers, 2, request=request)
        teachers = p.page(page)

        return render(request, \'teachers-list.html\', 
            \'all_teachers\': teachers,
        )

编辑前端页码

修改前面的展示教师列表

 

人气排序 和统计教师

编辑organization.views.py

class TeacherListView(View):
    def get(self, request):
        all_teachers = Teacher.objects.all()
        
        # 人气排序
        sort = request.GET.get(\'sort\', \'\')
        if sort:
            if sort == \'hot\':
                all_teachers = all_teachers.order_by(\'-click_nums\')
        
        # 统计教师数
        teacher_nums = all_teachers.count()

        # 分页
        try:
            page = request.GET.get(\'page\', 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(all_teachers, 2, request=request)
        teachers = p.page(page)

        return render(request, \'teachers-list.html\', 
            \'all_teachers\': teachers,
            \'sort\': sort,
            \'teracher_nums\': teacher_nums
        )

前端配置

 

讲师排行榜

编辑organization.views.py

class TeacherListView(View):
    def get(self, request):
        all_teachers = Teacher.objects.all()

        # 人气排序
        sort = request.GET.get(\'sort\', \'\')
        if sort:
            if sort == \'hot\':
                all_teachers = all_teachers.order_by(\'-click_nums\')

        # 统计教师数
        teacher_nums = all_teachers.count()
        
        # 讲师排行榜
        rank_teachers = all_teachers.order_by(\'-click_nums\')[:2]

        # 分页
        try:
            page = request.GET.get(\'page\', 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(all_teachers, 2, request=request)
        teachers = p.page(page)

        return render(request, \'teachers-list.html\', 
            \'all_teachers\': teachers,
            \'sort\': sort,
            \'teracher_nums\': teacher_nums,
            \'rank_teachers\': rank_teachers,
        )

前端展示

 

17django实战第17天:机构详情展示

1、进入xadmin添加测试数据(教师、课程)2、把以下4个前端页面复制到templates中先打开这几个页面分析,它们和之前的课程机构列表页是不一样的机构,且没有共同的部分,但是这4个页面却是类似的  查看详情

26django实战第26天:配置全局导航

1、编辑index.html,继承base.html2、编辑base.html,根据是否登录不同显示 问题:当我们选中一个导航,选中样式并没有成为选中的状态因此我们编辑base.html对导航中进行判断 然后我们可以用同样的方式来判断授课讲师我们先... 查看详情

15django实战第15天:我要学习咨询

今天完成的是课程机构列表页面的最后一个模块:我要学习我们在models中创建对应的表时UserAsk。之前我们讲过:在做表单的时候,我们可以通过forms先对提交的数据做一次 查看详情

100天精通oracle-实战系列(第24天)oracle数据泵表导出导入(代码片段)

Oracle数据泵表导出导入->返回总目录<-介绍数据泵按表导出,通常用于数据恢复、分区表数据归档以及坏块修复等等。数据恢复如果数据库未开启归档模式或者没有RMAN备份时,通常是使用数据泵进行备份。此时,如果表被误... 查看详情

100天精通oracle-实战系列(第24天)oracle数据泵表导出导入(代码片段)

Oracle数据泵表导出导入->返回总目录<-介绍数据泵按表导出,通常用于数据恢复、分区表数据归档以及坏块修复等等。数据恢复如果数据库未开启归档模式或者没有RMAN备份时,通常是使用数据泵进行备份。此时,如果表被误... 查看详情

100天精通oracle-实战系列(第24天)oracle数据泵表导出导入(代码片段)

Oracle数据泵表导出导入->返回总目录<-介绍数据泵按表导出,通常用于数据恢复、分区表数据归档以及坏块修复等等。数据恢复如果数据库未开启归档模式或者没有RMAN备份时,通常是使用数据泵进行备份。此时,如果表被误... 查看详情

第24天sql进阶-查询优化-performance_schema系列实战一:利用等待事件排查mysql性能问题(sql小虚竹)(代码片段)

回城传送–》《32天SQL筑基》文章目录零、前言一、背景二、performance_schema配置配置表启用等待事件的采集与记录三、sysbench基准测试工具3.1安装和使用sysbench3.1.1yum安装3.1.2查看版本信息3.1.3sysbench使用说明3.2sysbench测试服务器cpu... 查看详情

第24天sql进阶-查询优化-performance_schema系列实战一:利用等待事件排查mysql性能问题(sql小虚竹)(代码片段)

回城传送–》《32天SQL筑基》文章目录零、前言一、背景二、performance_schema配置配置表启用等待事件的采集与记录三、sysbench基准测试工具3.1安装和使用sysbench3.1.1yum安装3.1.2查看版本信息3.1.3sysbench使用说明3.2sysbench测试服务器cpu... 查看详情

22django实战第22天:课程评论

1、编辑course-comment.html2、编辑courses.views.pyclassCourseCommentView(LoginRequiredMixin,View):defget(self,request,course_id):course=Course.objects.get(id=course_id)returnrender(request,‘course-comment.ht 查看详情

29django实战第29天:修改密码和头像

修改头像1、上传头像,我们需要的对它做一个forms验证,编辑users.forms.py...from.modelsimportUserProfileclassUploadImageForm(forms.ModelForm):classMeta:model=UserProfilefields=[‘image‘]2、编辑users.views.pyclassUploadImageView(Logi 查看详情

vue项目实战24分页效果实现(代码片段)

接上篇《23、改造状态列的显示效果》上一篇我们实现了状态列的显示效果以及插槽形式定义操作列的渲染,本篇我们来实现用户列表的分页效果。我们要在用户数据列表的左下方加入一个分页组件:Element-UI为我们提供... 查看详情

《hellogithub》第24期(两周年)

公告今天是《HelloGitHub》月刊两周年。当时发布第一期的时候,根本没有想到可以走到现在。这两年,HelloGitHub项目有过辉煌的时刻:连续3天GitHub趋势首页、Python分类名列前茅;一天飙升300stars,我的整个首页都被star信息填满,... 查看详情

30django实战第30天:修改邮箱和用户信息

修改个人邮箱需要完成两个接口,一个是获取验证码,一个是新的邮箱和验证码是否匹配1、编辑users.views.pyclassSendEmailCodeView(LoginRequiredMixin,View):defget(self,request):email=request.GET.get(‘email‘,‘‘)ifUserProfile.objects.filter(email=email) 查看详情

28django实战第28天:个人信息展示

从今天开始,我来完成个人中心部分,前端页面如下1、浏览这些页面可以发现,它们和base.html是有区别的,因此,它们需要新建一个模板usercenter-base.html2、把usercenter-info.html的内容拷贝到usercenter-base.html,用block把会不同的部分... 查看详情

第2月第24天coretext行高

1.NSMutableAttributedString 行高 NSMutableAttributedString*attributedString=[[NSMutableAttributedStringalloc]initWithString:labelText];NSMutableParagraphStyle*paragraphStyle=[[NSMutableParagra 查看详情

flask实战第62天:帖子详情页布局(代码片段)

在templates/front/下创建详情页面front_pdetail.html编辑front.views.py创建详情页的视图函数fromflaskimportabort...@bp.route(‘/p/<post_id>/‘)defpost_detail(post_id):post=PostModel.query.get(post_id)ifnotpost:abort(404) 查看详情

第24天:js-函数变量声明提升

一、函数声明1、自定义函数functionfun1(){ alert("我是自定义函数");}fun2();//函数不调用,自己不执行2、直接量声明varfun2=function(){ alert("直接量声明");}fun2();3、利用Function关键字声明varfun3=newFunction("vara=10;b=20;alert(a+b)");fun3();二、变量... 查看详情

flask实战第60天:帖子分页技术实现(代码片段)

编辑manage.py,添加测试帖子@manager.commanddefcreate_test_post():forxinrange(1,100):title=‘标题‘.format(x)content=‘内容:‘.format(x)board=BoardModel.query.first()author=FrontUser.query.first()post=PostModel(tit 查看详情