内置基于类的视图 API

    基于类的视图所服务的每个请求都有一个独立的状态,因此,在实例上存储状态变量是安全的(即,self.foo = 3 是一个线程安全的操作)。

    基于类的视图使用 as_view() 类方法部署到一个 URL 模式中。

    传递给视图的参数在视图的每个实例之间共享。这意味着你不应该使用列表、字典或任何其他可更改的对象作为视图的参数。如果你这样做了,而共享对象又被修改了,那么访问你视图的一个用户的行为可能会对访问同一视图的后续用户产生影响。

    传入 as_view() 的参数将被分配到用于服务请求的实例上。使用前面的例子,这意味着在 MyView 上的每个请求都能够使用 self.size。参数必须与类上已经存在的属性相对应(在 hasattr 检查时返回 True)。

    基础 vs 通用视图

    Django 的通用视图是在这些基础视图的基础上建立起来的,是作为显示对象详情等常见使用模式的快捷方式而开发的。它们采用了视图开发中的某些常见的习惯和模式,并将其抽象化,这样你就可以快速编写数据的通用视图,而不必重复。

    大多数通用视图需要使用 queryset 键,它是一个 QuerySet 实例;关于 对象的更多信息,请参见 执行查询