Web 开发是一项无聊而且单调的工作,特别是在视图功能编写方面更为显著。为了减少这种痛苦,Django植入了视图类这一功能,该功能封装了视图开发常用的代码,无须编写大量代码即可快速完成数据视图的开发,这种以类的形式实现响应与请求处理称为 CBV(Class Base Views)

视图类是通过定义和声明类的形式实现的,根据用途划分3部分数据显示视图数据操作视图日期筛选视图

1、数据显示视图

数据显示视图是将后台的数据展示在网页上,数据主要来自模型,一共定义了4个视图类,分别是RedirectView、TemplateView、ListView 和 DetailView,说明如下:

  • RedirectView用于实现 HTTP 重定向,默认情况下只定义 GET 请求的处理方法。
  • TemplateView是视图类的基础视图,可将数据传递给HTML模板,默认情况下只定义 GET 请求的处理方法。
  • ListView是在 TemplateView 的基础上将数据以列表显示,通常将某个数据表的数据以列表表示。
  • DetailView是在 TemplateView 的基础上将数据详细显示,通常获取数据表的单条数据。

2、数据操作视图

数据操作视图是对模型进行操作,如增、删、改,从而实现 Django 与数据库的数据交互。数据操作视图有 4个 视图类,分别是 FormView,CreateView、UpdateView和 DeleteView,说明如下:

  • FormView 视图类使用内置的表单功能,通过表单实现数据验证、响应输出等功能,用于显示表单数据。
  • CreateView 实现模型的数据新增功能,通过内置的表单功能实现数据新增。
  • UpdateView 实现模型的数据修改功能,通过内置的表单功能实现数据修改。
  • DeleteView 实现模型的数据删除功能,通过内置的表单功能实现数据删除。

3、日期筛选视图

日期筛选视图是根据模型里的某个日期字段进行数据筛选的,然后将符合结果的数据以一定的形式显示在网页上。简单来说,在列表视图 ListView详细视图DetailView 的基础上增加日期筛选所实现的视图类。它一共定义了 7 个日期视图类,说明如下:

  • ArchivelndexView是将数据表所有的数据以某个日期字段的降序方式进行排序显示的。
  • YearArchiveView 是在数据表筛选某个日期字段某年的所有的数据,默认以升序的方式排序显示,年份的筛选范围由 路由 变量提供。
  • MonthArchiveView 是在数据表筛选某个日期字段某年某月的所有的数据,默认以升序的方式排序显示,年份和月份的筛选范围由 路由 变量提供。
  • WeekArchiveView 是在数据表筛选某个日期字段某年某周的所有的数据,总周数是将一年的总天数除以7所得的,数据默认以升序的方式排序显示,年份和周数的筛选范围都是由 路由 变量提供。
  • DayArchiveView 是对数据表的某个日期字段精准筛选到某年某月某天,将符合条件的数据以升序的方式排序显示,年份、月份和天数都是由路由 变量提供。
  • TodayArchiveView 是在视图类DayArchiveView 的基础上进行封装处理的,它将数据表的某个日期字段的筛选条件设为当天,符合条件的数据以升序的方式排序显示。
  • DateDetailView 是查询某年某月某日某条数据的详细信息,它在视图类 Detailview 的基础上增加了日期筛选功能,筛选条件主要有年份、月份、天数和某个模型字段,其中某个模型字段必须具有唯一性,才能确保查询的数据具有唯一性。

希望以上内容能让各位对Django中的CBV视图有一定的了解。

Django中的CBV视图相关推荐

  1. Django框架(9.Django中的配置使用MySQL数据库以及页面重定向)

    ORM框架简介 ORM框架还可以通过方便的配置就可以进行数据库的切换 进入虚拟环境,创建一个新的项目,django-admin  startproject test2  (test2为项目名) 创建好 ...

  2. Django框架之CBV类视图及类视图装饰器

    前言 这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题 于是乎,我自己开发了一款面试宝典,希 ...

  3. Django 2.1.3 视图层 内置CBV通用视图

    内置的基于类的通用视图 1. 扩展通用视图 2. 对象的通用视图 3. 制作"友好"的模板上下文 4. 添加额外的上下文 5. 查看对象的子集 6. 动态过滤 7. 执行额外的工作 ...

  4. Django框架(7.Django中视图,url的配置)

    视图 在Django中,通过浏览器去请求一个页面时,使用视图函数来处理这个请求的, 视图函数处理之后,要给浏览器返回页面内容 url匹配 urlpatterns 是固定写法,它的值是 列表 我们在浏览 ...

  5. django模型查询_如何在Django中编写有效的视图,模型和查询

    django模型查询 I like Django. It's a well-considered and intuitive framework with a name I can pronounce ...

  6. django中CBV

    08.13自我总结 django中CBV 一.django处理业务逻辑的两种方式 FBV (function based views):使用函数来处理业务逻辑 CBV (class based vie ...

  7. Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)(二)

    二.跨域: 回到顶部 跨域知识介绍: 点我以前博客 跨域解决方法:CORS:跨域资源共享 CORS请求分类(简单请求和非简单请求) 简单请求(simple request):只需要在头信息之中增加一个 ...

  8. Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)(一)

    阅读目录 一.Django中的缓存: 前戏: Django中的几种缓存方式: Django中的缓存应用: 二.跨域: 跨域知识介绍: CORS请求分类(简单请求和非简单请求) 示例: 三.自动生成接口 ...

  9. Django的View(视图)

    Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...

最新文章

  1. php中OR与|| AND与的区别
  2. SQL Server 死锁的告警监控
  3. 用原生 JS 实现 MVVM 框架2——单向绑定
  4. linux下gate版本管理,Linux安装使用GoldenGate
  5. idea 控制台程序的打包
  6. SpringCloud系列:分布式服务调用链跟踪整合Zipkin、RabbitMQ、Elasticsearch(二)
  7. Linux的铜墙铁壁:防火墙之iptables
  8. ssh 连接linux 乱码问题,SSH 连接 Ubuntu 时的中文乱码问题
  9. arrayfun用法
  10. Android-通过Java代码来实现属性动画
  11. Logrotate操作手册
  12. Python 2.7 (64位) 出现bug,idle不能打开
  13. GD32库中常用的位操作REGIDX_BIT(regidx, bitpos)
  14. 简单盘点游戏开发引擎
  15. mysql删库命令是啥_删除数据库的命令是什么
  16. [prometheus]Step7-prometheus使用阿里云企业邮箱告警
  17. Android 获取手机内存大小
  18. 探秘Sophos反病毒实验室监测主流病毒全过程
  19. 基于Ubuntu 16.04的HUSTOJ在线判题系统的搭建
  20. 【TARS】基于TARS的调试

热门文章

  1. python http的请求和响应
  2. QQ--基于TCP/UDP协议的通讯原理
  3. RabbitMQ默认端口
  4. Windows界面直接拖拽文件到xshell界面实现文件传输
  5. 6个超酷的 Python 技巧
  6. html+jsp 简单静态网页设计
  7. 排序算法——shell排序(希尔排序)
  8. error: 生成此程序集的运行时比当前加载的运行时新,无法加载此程序集
  9. uniapp微信小程序生成分享海报(模板自取)
  10. python数据分析之帕累托分析