0
点赞
收藏
分享

微信扫一扫

django 1.8 官方文档翻译: 3-4-5 内建基于类的视图的API


内建基于类的视图的API

基于类的视图的API 参考。另请参见基于类的视图 的简介。

  • 基础视图
  • View
  • TemplateView
  • RedirectView
  • 通用的显示视图
  • DetailView
  • ListView
  • 通用的编辑视图
  • FormView
  • CreateView
  • UpdateView
  • DeleteView
  • 通用的日期视图
  • ArchiveIndexView
  • YearArchiveView
  • MonthArchiveView
  • WeekArchiveView
  • DayArchiveView
  • TodayArchiveView
  • DateDetailView
  • 基于类的视图的Mixins
  • Simple mixins
  • ContextMixin
  • TemplateResponseMixin
  • Single object mixins
  • SingleObjectMixin
  • SingleObjectTemplateResponseMixin
  • Multiple object mixins
  • MultipleObjectMixin
  • MultipleObjectTemplateResponseMixin
  • Editing mixins
  • FormMixin
  • ModelFormMixin
  • ProcessFormView
  • DeletionMixin
  • Date-based mixins
  • YearMixin
  • MonthMixin
  • DayMixin
  • WeekMixin
  • DateMixin
  • BaseDateListView
  • 基于类的通用视图 —— 索引
  • Simple generic views
  • View
  • TemplateView
  • RedirectView
  • Detail Views
  • DetailView
  • List Views
  • ListView
  • Editing views
  • FormView
  • CreateView
  • UpdateView
  • DeleteView
  • Date-based views
  • ArchiveIndexView
  • YearArchiveView
  • MonthArchiveView
  • WeekArchiveView
  • DayArchiveView
  • TodayArchiveView
  • 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 文档协作翻译小组,原文:API reference。

本文以 CC BY-NC-SA 3.0 协议发布,转载请保留作者署名和文章出处。

Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606。


举报

相关推荐

0 条评论