1、编辑users.views.py

...
class IndexView(View):
"""
首页
"""
def get(self, request):
return render(request, 'index.html', {})  

2、修改首页的url配置,编辑mxonline.urls.py

...
from users.views import IndexView urlpatterns = [
...
url(r'^$', IndexView.as_view(), name='index' ),
...
]

3、修改完成后,访问首页能够正常显示 

4、完成轮播图,编辑users.views.py

from .models import Banner
... class IndexView(View):
"""
首页
"""
def get(self, request):
# 按"index"降序取出前5个
banners = Banner.objects.all().order_by('-index')[:5]
return render(request, 'index.html', {
'banners': banners,
})

5、编辑index.html

6、现在我们可以进xadmin后台添加5张轮播图,然后在前端首页就可以看到效果了

完成公开课

公开课里面有一部分是轮播的,因此,我们要在课程表里面加字段,是否轮播

编辑courses.models.py

class Course(models.Model):
...
is_banner = models.BooleanField(default=False, verbose_name='是否轮播')
... //同步到数据库
manage.py@mxonline > makemigrations courses
manage.py@mxonline > migrate courses  

编辑users.views.py

class IndexView(View):
"""
首页
"""
def get(self, request):
# 按"index"降序取出前5个
banners = Banner.objects.all().order_by('-index')[:5] #取出6个不轮播的课程
courses = Course.objects.filter(is_banner=False)[:6]
#取出3个轮播课程
banner_courses = Course.objects.filter(is_banner=True)[:3]
return render(request, 'index.html', {
'banners': banners,
'courses': courses,
'banner_courses': banner_courses,
})

编辑index.html(轮播部分)

现在在后台设置几个课程允许轮播,就可以看到公开课里面轮播的效果了

还有6个不轮播的课程,我们发现这些class都不一样,从3开始的

我们可以这样来实现

完成课程机构

首先在课程机构表里添加一个"标签"字段

class CourseOrg(models.Model):
...
tag = models.CharField(max_length=10, default='全国知名', verbose_name='机构标签')
... //同步到数据库
manage.py@mxonline > makemigrations organization
manage.py@mxonline > migrate organization

编辑users.views.py

class IndexView(View):
"""
首页
"""
def get(self, request):
# 按"index"降序取出前5个
banners = Banner.objects.all().order_by('-index')[:5] #取出6个不轮播的课程
courses = Course.objects.filter(is_banner=False)[:6]
#取出3个轮播课程
banner_courses = Course.objects.filter(is_banner=True)[:3] # 课程机构
course_orgs = CourseOrg.objects.all()[:15]
return render(request, 'index.html', {
'banners': banners,
'courses': courses,
'banner_courses': banner_courses,
'course_orgs': course_orgs,
})

编辑index.html

我们发现5, 10, 15class和其他的不一样

可以这样解决,计数整除5

还剩下最后一个问题,当我们登录后,首页又不能正常显示数据了!!!这是为什么呢??

我们来看看LoginView, 直接返回的index, 而不是Index的view

我们之前做退出登录的时候有一个跳转,也里同样也要用到,所以

修改LoignVew

36、Django实战第36天:首页功能开发的更多相关文章

  1. Python django实现简单的邮件系统发送邮件功能

    Python django实现简单的邮件系统发送邮件功能 本文实例讲述了Python django实现简单的邮件系统发送邮件功能. django邮件系统 Django发送邮件官方中文文档 总结如下: ...

  2. APP UI结构-首页功能点大集锦,很干很详细

    APP UI结构的系列的文章有一段时间没有更新了,因为最近在学一些新东西和看一些新书籍,适当的给自己充电也是为了更好的输出,言归正传,今天想跟大家聊的是和首页相关的一些内容,可能有些内容最近有的小伙伴 ...

  3. 用java实现“钉钉微应用,免登进入某H5系统首页“功能”

    一.前言 哈哈,这是我的第一篇博客. 先说一下这个小功能的具体场景: 用户登录钉钉app,点击微应用,获取当前用户的信息,与H5系统的数据库的用户信息对比,如果存在该用户,则点击后直接进入H5系统的首 ...

  4. 从零开始部署Django生产环境(适用:《跟老齐学Python Django实战》)

    <跟老齐学Python Django实战>作为市面上少有的Django通俗实战书籍,给了我学习Django很大的帮助.作为一名新入门的菜鸟,全书我重复练习了至少三遍,每次都有新的收获. 前 ...

  5. FastAPI(七十)实战开发《在线课程学习系统》接口开发--留言功能开发

    在之前的文章:FastAPI(六十九)实战开发<在线课程学习系统>接口开发--修改密码,这次分享留言功能开发 我们能梳理下对应的逻辑 1.校验用户是否登录 2.校验留言的用户是否存在 3. ...

  6. 「小程序JAVA实战」小程序搜索功能(55)

    转自:https://idig8.com/2018/09/23/xiaochengxujavashizhanxiaochengxusousuogongneng54/ 通过用户搜索热销词,将热销词添加到 ...

  7. go语言实战教程之 后台管理页面统计功能开发(2)

    上节内容介绍了后台管理页面统计功能开发(1),从功能介绍,到接口请求分析和归类,最后是代码设计.经过上节内容的介绍,已经将业务逻辑和开发逻辑解释清楚,本节内容侧重于编程代码实现具体的功能. 当日增长数 ...

  8. go语言实战教程之 后台管理页面统计功能开发(1)

    本节内容我们将学习开发实现后台管理平台页面统计功能开发的功能接口,本章节内容将涉及到多种请求路由的方式. 功能介绍 后台管理平台不仅是功能管理平台,同时还是数据管理平台.从数据管理平台角度来说,在管理 ...

  9. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-2.微信扫一扫功能开发前期准备

    笔记 2.微信扫一扫功能开发前期准备         简介:讲解微信扫一扫功能相关开发流程和资料准备              1.微信开放平台介绍(申请里面的网站应用需要企业资料)          ...

随机推荐

  1. 【NOIP模拟赛】飞(fly) 数论+树状数组

    树状数组一个被发明以来广为流行的数据结构,基于数组,核心是lowerbit()操作.他向前lowerbit()操作为前缀,向后lowerbit()操作为上辖,我们运用树状数组都是使一个由O(1)变为O ...

  2. MySQL使用笔记(二)数据库基本操作

    By francis_hao    Dec 11,2016 数据库是什么 数据库是什么呢?对于MySQL来说,数据库是存储数据库对象的容器,参考[1]中的简单解释是:数据库是一个拥有特定排放顺序的文件 ...

  3. codevs 1078 最小生成树 kruskal

    题目描述 Description 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要你的帮助. 约翰已经给他的农场安排了一条高速的网络线路,他想把这 ...

  4. 测试数据库DG搭建为正式库以后做准备

    Data guard 部署 1.系统准备(备库只需建立数据库软件) 两台操作系统 oracle linux 7 Node1 172.16.70.191 Node2 172.16.70.192 Orac ...

  5. 使用state模块部署lamp架构

    install_httpd: pkg.installed: - name: httpd httpd_running: service.running: - name: httpd - enable: ...

  6. 如何根据pom.xml文件下载jar包

    遇到过这种情况:从网上下载了一个项目, 使用的maven, 但是我想要新建一个项目, 但是不需要使用maven. 但是我怎么样才能将他那个项目的所有引用的jar包给下载下载下来呢; 1.下载一个mav ...

  7. 【Foreign】染色 [LCT][线段树]

    染色 Time Limit: 20 Sec  Memory Limit: 256 MB Description Input Output Sample Input 13 0 1 0 2 1 11 1 ...

  8. noip2013 提高组

    T1 转圈游戏 题目传送门 果不其然 第一题还是模拟题 一波快速幂解决问题 #include<cstdio> #include<cstring> #include<alg ...

  9. [bzoj1031][JSOI2007]字符加密Cipher——后缀数组

    Brief Description 给定一个长度为n的字符串,你需要对其进行加密. 把字符串围成一个环 显然从任意一个位置开始都可以有一个长度为n的串 把产生的n个串按字典序排序,把这n个串的最后一个 ...

  10. bzoj 2151 贪心

    几乎完全类似于1150的思路,直接参考那个就行了. http://www.cnblogs.com/BLADEVIL/p/3527193.html /************************** ...