前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django源码学习-11-base.py

Django源码学习-11-base.py

作者头像
小团子
发布2019-08-09 15:16:00
1.2K0
发布2019-08-09 15:16:00
举报
文章被收录于专栏:数据云团数据云团

Django源码学习-10-Minin 基础类

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

所有的视图相关代码,均存放在 django/views/generic 目录中:

代码语言:javascript
复制
from django.views.generic import View
  • base.py 保存视图的抽象类,TemplateView和RedirectView,及工具类TemplateResponseMixin的代码;
  • create_update.py 基于函数的通用视图;
  • date_based.py 基于函数的日期相关通用视图;
  • dates.py 新的基于类的日期相关通用视图。用于取代date_based.py;
  • detail.py 基于类的单个对象显示相关的视图和工具类;
  • edit.py 基于类的对象编辑相关的视图和工具类;
  • list.py 基于类的对象列表显示相关视图和工具类;
  • list_detail.py 基于函数的列表、显示函数;
  • simply.py 基于函数的工具常用工具视图。

从逻辑上来看,源代码被组织为抽象基类,工具类(Mixin),常规(具体)实现和基于模型的实现。

抽象类和常用视图(base.py)

这个文件包含视图的顶级抽象类(View),基于模板的工具类(TemplateResponseMixin),模板视图(TemplateView)和重定向视图(RedirectView)。

列表类通用视图(list.py)

此文件包含用于显示数据列表常用的类和工具类。不仅可以方便的用于显示基于模型(Model)的数据列表,也可以用于显示自定义数据列表。

MultipleObjectMixin

最主要的核心工具类,主要的算法和接口全部都在这个工具类中实现。

  • 属性

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': 视图的数据

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 抽象类和常用视图(base.py)
  • 列表类通用视图(list.py)
    • MultipleObjectMixin
    相关产品与服务
    图数据库 KonisGraph
    图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档