Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
所有的视图相关代码,均存放在 django/views/generic 目录中:
from django.views.generic import View
从逻辑上来看,源代码被组织为抽象基类,工具类(Mixin),常规(具体)实现和基于模型的实现。
这个文件包含视图的顶级抽象类(View),基于模板的工具类(TemplateResponseMixin),模板视图(TemplateView)和重定向视图(RedirectView)。
此文件包含用于显示数据列表常用的类和工具类。不仅可以方便的用于显示基于模型(Model)的数据列表,也可以用于显示自定义数据列表。
最主要的核心工具类,主要的算法和接口全部都在这个工具类中实现。
allow_empty 默认值True。表示没有数据时显示空列表;否则将会产生一个404错误。
queryset 产生数据的queryset实例或"类queryset"数据列表。
model 关联的模型类。
paginated_by 分页的每页数据项数。默认不起用分页。
contextobjectname 保存到context中的对象名称。默认是$(model)_list。
paginator_class 默认值Paginator,分页处理器。
get_queryset 获取用于数据显示的列表对象。可以是类queryset对象。
queryset属性。未提供queryset属性时,返回model的默认管理器。如果也没有提供model属性,将会产生ImproperlyConfigured异常。
paginatequeryset 根据需要,将queryset分页。返回(paginator, page, page.objectlist, page.hasotherpages())
getpaginateby 返回每页数据项数。None表示不分页。
get_paginator 返回分页器
getallowempty
getcontextobjectname
getcontextdata 设置视图的附加属性。通常重写此方法来为视图提供附加数据。 默认设计的视图数据:
'paginator': 分页器, 'page_obj': 页对象, 'is_paginated': 是否进行了分页, 'object_list': 视图的数据