# 内建基于类的视图的API #
基于类的视图的API 参考。另请参见[基于类的视图](http://python.usyiyi.cn/django/topics/class-based-views/index.html) 的简介。
+ [基础视图](http://python.usyiyi.cn/django/ref/class-based-views/base.html)
+ [View](http://python.usyiyi.cn/django/ref/class-based-views/base.html#view)
+ [TemplateView](http://python.usyiyi.cn/django/ref/class-based-views/base.html#templateview)
+ [RedirectView](http://python.usyiyi.cn/django/ref/class-based-views/base.html#redirectview)
+ [通用的显示视图](http://python.usyiyi.cn/django/ref/class-based-views/generic-display.html)
+ [DetailView](http://python.usyiyi.cn/django/ref/class-based-views/generic-display.html#detailview)
+ [ListView](http://python.usyiyi.cn/django/ref/class-based-views/generic-display.html#listview)
+ [通用的编辑视图](http://python.usyiyi.cn/django/ref/class-based-views/generic-editing.html)
+ [FormView](http://python.usyiyi.cn/django/ref/class-based-views/generic-editing.html#formview)
+ [CreateView](http://python.usyiyi.cn/django/ref/class-based-views/generic-editing.html#createview)
+ [UpdateView](http://python.usyiyi.cn/django/ref/class-based-views/generic-editing.html#updateview)
+ [DeleteView](http://python.usyiyi.cn/django/ref/class-based-views/generic-editing.html#deleteview)
+ [通用的日期视图](http://python.usyiyi.cn/django/ref/class-based-views/generic-date-based.html)
+ [ArchiveIndexView](http://python.usyiyi.cn/django/ref/class-based-views/generic-date-based.html#archiveindexview)
+ [YearArchiveView](http://python.usyiyi.cn/django/ref/class-based-views/generic-date-based.html#yeararchiveview)
+ [MonthArchiveView](http://python.usyiyi.cn/django/ref/class-based-views/generic-date-based.html#montharchiveview)
+ [WeekArchiveView](http://python.usyiyi.cn/django/ref/class-based-views/generic-date-based.html#weekarchiveview)
+ [DayArchiveView](http://python.usyiyi.cn/django/ref/class-based-views/generic-date-based.html#dayarchiveview)
+ [TodayArchiveView](http://python.usyiyi.cn/django/ref/class-based-views/generic-date-based.html#todayarchiveview)
+ [DateDetailView](http://python.usyiyi.cn/django/ref/class-based-views/generic-date-based.html#datedetailview)
+ [基于类的视图的Mixins](http://python.usyiyi.cn/django/ref/class-based-views/mixins.html)
+ [Simple mixins](http://python.usyiyi.cn/django/ref/class-based-views/mixins-simple.html)
+ [ContextMixin](http://python.usyiyi.cn/django/ref/class-based-views/mixins-simple.html#contextmixin)
+ [TemplateResponseMixin](http://python.usyiyi.cn/django/ref/class-based-views/mixins-simple.html#templateresponsemixin)
+ [Single object mixins](http://python.usyiyi.cn/django/ref/class-based-views/mixins-single-object.html)
+ [SingleObjectMixin](http://python.usyiyi.cn/django/ref/class-based-views/mixins-single-object.html#singleobjectmixin)
+ [SingleObjectTemplateResponseMixin](http://python.usyiyi.cn/django/ref/class-based-views/mixins-single-object.html#singleobjecttemplateresponsemixin)
+ [Multiple object mixins](http://python.usyiyi.cn/django/ref/class-based-views/mixins-multiple-object.html)
+ [MultipleObjectMixin](http://python.usyiyi.cn/django/ref/class-based-views/mixins-multiple-object.html#multipleobjectmixin)
+ [MultipleObjectTemplateResponseMixin](http://python.usyiyi.cn/django/ref/class-based-views/mixins-multiple-object.html#multipleobjecttemplateresponsemixin)
+ [Editing mixins](http://python.usyiyi.cn/django/ref/class-based-views/mixins-editing.html)
+ [FormMixin](http://python.usyiyi.cn/django/ref/class-based-views/mixins-editing.html#formmixin)
+ [ModelFormMixin](http://python.usyiyi.cn/django/ref/class-based-views/mixins-editing.html#modelformmixin)
+ [ProcessFormView](http://python.usyiyi.cn/django/ref/class-based-views/mixins-editing.html#processformview)
+ [DeletionMixin](http://python.usyiyi.cn/django/ref/class-based-views/mixins-editing.html#deletionmixin)
+ [Date-based mixins](http://python.usyiyi.cn/django/ref/class-based-views/mixins-date-based.html)
+ [YearMixin](http://python.usyiyi.cn/django/ref/class-based-views/mixins-date-based.html#yearmixin)
+ [MonthMixin](http://python.usyiyi.cn/django/ref/class-based-views/mixins-date-based.html#monthmixin)
+ [DayMixin](http://python.usyiyi.cn/django/ref/class-based-views/mixins-date-based.html#daymixin)
+ [WeekMixin](http://python.usyiyi.cn/django/ref/class-based-views/mixins-date-based.html#weekmixin)
+ [DateMixin](http://python.usyiyi.cn/django/ref/class-based-views/mixins-date-based.html#datemixin)
+ [BaseDateListView](http://python.usyiyi.cn/django/ref/class-based-views/mixins-date-based.html#basedatelistview)
+ [基于类的通用视图 —— 索引](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html)
+ [Simple generic views](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#simple-generic-views)
+ [View](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#view)
+ [TemplateView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#templateview)
+ [RedirectView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#redirectview)
+ [Detail Views](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#detail-views)
+ [DetailView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#detailview)
+ [List Views](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#list-views)
+ [ListView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#listview)
+ [Editing views](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#editing-views)
+ [FormView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#formview)
+ [CreateView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#createview)
+ [UpdateView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#updateview)
+ [DeleteView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#deleteview)
+ [Date-based views](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#date-based-views)
+ [ArchiveIndexView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#archiveindexview)
+ [YearArchiveView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#yeararchiveview)
+ [MonthArchiveView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#montharchiveview)
+ [WeekArchiveView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#weekarchiveview)
+ [DayArchiveView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#dayarchiveview)
+ [TodayArchiveView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#todayarchiveview)
+ [DateDetailView](http://python.usyiyi.cn/django/ref/class-based-views/flattened-index.html#datedetailview)
## 说明 ##
由基于类的视图处理的每个请求都具有一个独立的状态;所以,在实例中保存状态变量是安全的(例如,`self.foo = 3` 是线程安全的操作)。
基于类的视图在URL 模式中的部署使用`as_view()` 类方法:
```
urlpatterns = [
url(r'^view/$', MyView.as_view(size=42)),
]
```
> 视图参数的线程安全性
>
> 传递给视图的参数在视图的每个实例之间共享。这表示不应该使用列表、字典或其它可变对象作为视图的参数。如果你真这么做而且对共享的对象做过修改,某个用户的行为可能对后面访问同一个视图的用户产生影响。
传递给`as_view()` 的参数将赋值给服务请求的实例。利用前面的例子,这表示对`MyView `的每个请求都可以使用 `self.size`。参数必须对应于在类中已经存在的属性(`hasattr` 检查可以返回`True`)。
## 基础视图 VS. 通用视图 ##
基于类的基础视图可以认为是父视图,它们可以直接使用或者继承它们。它们不能满足项目中所有的需求,在这种情况下有Mixin 可以扩展基础视图的功能。
Django 的通用视图建立在基础视图之上,用于作为经常用到的功能的快捷方式,例如显示对象的详细信息。它们提炼视图开发中常见的风格和模式并将它们抽象,这样你可以快速编写常见的视图而不用重复你自己。
大部分通常视图需要`queryset` 键 ,它是一个`查询集` 实例;关于`查询集`对象的更多信息,请参见执行查询。
> 译者:[Django 文档协作翻译小组](http://python.usyiyi.cn/django/index.html),原文:[API reference](https://docs.djangoproject.com/en/1.8/ref/class-based-views/)。
>
> 本文以 [CC BY-NC-SA 3.0](http://creativecommons.org/licenses/by-nc-sa/3.0/cn/) 协议发布,转载请保留作者署名和文章出处。
>
> [Django 文档协作翻译小组](http://python.usyiyi.cn/django/index.html)人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606。
- 新手入门
- 从零开始
- 概览
- 安装
- 教程
- 第1部分:模型
- 第2部分:管理站点
- 第3部分:视图和模板
- 第4部分:表单和通用视图
- 第5部分:测试
- 第6部分:静态文件
- 高级教程
- 如何编写可重用的应用
- 为Django编写首个补丁
- 模型层
- 模型
- 模型语法
- 元选项
- 模型类
- 查询集
- 执行查询
- 查找表达式
- 模型的实例
- 实例方法
- 访问关联对象
- 迁移
- 模式编辑器
- 编写迁移
- 高级
- 管理器
- 原始的SQL查询
- 聚合
- 多数据库
- 自定义查找
- 条件表达式
- 数据库函数
- 其它
- 遗留的数据库
- 提供初始数据
- 优化数据库访问
- 视图层
- 基础
- URL配置
- 视图函数
- 快捷函数
- 装饰器
- 参考
- 内建的视图
- TemplateResponse 对象
- 文件上传
- 概览
- File 对象
- 储存API
- 管理文件
- 自定义存储
- 基于类的视图
- 概览
- 内建显示视图
- 内建编辑视图
- API参考
- 分类索引
- 高级
- 生成 CSV
- 生成 PDF
- 中间件
- 概览
- 内建的中间件类
- 模板层
- 基础
- 面向设计师
- 语言概览
- 人性化
- 面向程序员
- 表单
- 基础
- 概览
- 表单API
- 内建的Widget
- 高级
- 整合媒体
- 开发过程
- 设置
- 概览
- 应用程序
- 异常
- 概览
- django-admin 和 manage.py
- 添加自定义的命令
- 测试
- 介绍
- 部署
- 概述
- WSGI服务器
- 部署静态文件
- 通过email追踪代码错误
- Admin
- 管理操作
- 管理文档生成器
- 安全
- 安全概述
- 说明Django中的安全问题
- 点击劫持保护
- 加密签名
- 国际化和本地化
- 概述
- 本地化WEB UI格式化输入
- “本地特色”
- 常见的网站应用工具
- 认证
- 概览
- 使用认证系统
- 密码管理
- 日志
- 分页
- 会话
- 数据验证
- 其它核心功能
- 按需内容处理
- 重定向
- 信号
- 系统检查框架