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

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

作者头像
小团子
发布2019-08-06 17:12:23
6340
发布2019-08-06 17:12:23
举报
文章被收录于专栏:数据云团数据云团

Django源码学习-9-TemplateView 通用视图

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

要深入理解class-based view, 那首先就要了解什么是Mixin。在编程中mixin是指为继承它的class提供额外的功能,但它自身却不能单独使用的类。在具有多继承能力的编程语言中, mixin可以为类增加额外功能或方法。

代码语言:javascript
复制
from django.views.generic import View

这个类是通用类的基类,其它类都是继承自这个类。

Django把基本的http请求和响应抽象出来,封装成各自的类,在使用过程中只需把各个基类聚合到一起使用,可以按照要求重写自己需要的方法,那么就把这些基类称为Mixin。在Django中比较基础的Mixin主要有几类:

  1. View(视图基础类)
  2. SingleObjectMixin(单对象类)
  3. MultipleObjectMixin(多对象类)
  4. TemplateResponseMixin(模板响应类)
  5. FormMixin(表单类)
  6. YearMixin, MonthMixin, DayMixin, WeekMixin, DateMixin(几个基于时间关系的类)

其他的所有内置class-based view都是把以上几个基础类组合, 重写方法以达到预期的结果。比如DetailView这个类就组合了SingleObjectTemplateResponseMixin和BaseDetailView。

代码语言:javascript
复制
# views.py
from django.http import HttpResponse
from django.views.generic import View
 
class IndexView(View):
 
    def get(self, request, *args, **kwargs):
        return HttpResponse('Hello, World!')
 
# urls.py
from django.urls import path
 
from .views import IndexView
 
urlpatterns = [
    path('index/', IndexView.as_view()),
]
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档