类视图

 

类视图

使用原则

代码越少越好

永远不要重复代码

View应当只包含呈现逻辑, 不应包括业务逻辑

保持view逻辑清晰简单

不要将CBVs用作403, 404, 500的错误处理程序

保持mixin简单明了

  mixin在编程中mixin是指为继承它的class提供额外的功能, 但它自身却不能单独使用的类在具有多继承能力的编程语言中, mixin可以为类增加额外功能或方法. 在Django中, 我们可以使用mixin为CBVs提供更多的扩展性, 当然在类继承过程中, 我们推荐以下原则:

Django自身提供的View永远在最右边

mixin依次在以上view的左边

mixin永远继承自Python的object类型

Django mixin库:  常用的类视图

View                    基本View 可以在任何时候使用 见后面详细介绍RedirectView            重新定向到其他URL 将访问"/log-in/"的用户重新定向到"/login/"TemplateView            显示Django 模板 一般网站中使用模板显示的页ListView                显示对象列表 文章列表页DetailView              显示对象详情 文章详细页FormView                提交From 网站联系我们或emai订阅formCreateView              创建对象 创建新文章页UpdateView              更新对象 修改文章页DeleteView              删除对象 删除文章页Generic date views      显示一段时间内的对象 按时间归类的博客

登录后复制

 

 

View

django.views.generic.base.View基于类的基础视图的核心。其它所有的基于类的视图都继承自这个基础类。 

 django.shortcuts  django.views.generic state =http_method_names = [, , , , , , ,  dispatch(self, request, *args, **(= super(Index,self).dispatch(request, *args, **( HttpResponse( HttpResponse()

登录后复制   

TemplateView

从以下视图继承方法和属性

django.views.generic.base.TemplateResponseMixin

django.views.generic.base.ContextMixin

django.views.generic.base.View

 示例

 django.views.generic.base =  dispatch(self, request, *args, **(= super(HomePageView,self).dispatch(request, *args, **( get_context_data(self, **= super(HomePageView, self).get_context_data(**] = [,,( context

登录后复制

 

  

RedirectView

从以下视图继承方法和属性:

django.views.generic.base.View

 示例

 django.views.generic.base == False  query_string = True  pattern_name =    dispatch(self, request, *args, **(= super(ArticleRedirectView,self).dispatch(request, *args, **( get_redirect_url(self, *args, **( super(ArticleRedirectView, self).get_redirect_url(*args, **kwargs)

登录后复制

 

      

DetaliView

DetailView是对这些出版商的诸多的object中的一个进行详细解析,它获得的主数据是一个object。

从以下视图继承方法和属性:

django.views.generic.detail.SingleObjectTemplateResponseMixin

django.views.generic.base.TemplateResponseMixin

django.views.generic.detail.BaseDetailView

django.views.generic.detail.SingleObjectMixin

django.views.generic.base.View

 示例

 django.contrib.auth.mixins  chouti.models ==   pk_url_kwarg =    get_context_data(self, **(context = super(UserDetailView, self).get_context_data(**] = [33, 44]

登录后复制

 

 

ListView

对于ListView来说,它需要显示的是多个object的信息,返回的是一个对象列表它的数据来源是model和queryset这两个属性:

model:获取这个model相关的所有数据

queryset:从这个queryset中获取指定的数据。

queryset的优先级高于model

它所获取的数据是通过context中object_list这个变量来传递的

  从以下视图继承方法和属性:

django.views.generic.list.MultipleObjectTemplateResponseMixin

django.views.generic.base.TemplateResponseMixin

django.views.generic.list.BaseListView

django.views.generic.list.MultipleObjectMixin

django.views.gen

  示例

 blog.models  django.views.generic model = Post   queryset = Post.objects.filter(title__contains = )  context_object_name =   template_name=   ( Post.objects.filter(title__contains = self.kwargs[ get_context_data(self, **(= super(PublisherList, self).get_context_data(**kwargs)  context[] = [, ]    context

登录后复制

 

  

以上就是类视图的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2270518.html

(0)
上一篇 2025年2月27日 11:44:20
下一篇 2025年2月27日 11:44:49

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php如何使用CakePHP框架?

    在现代web开发中,使用mvc框架能够大大提高开发效率和代码可维护性。cakephp是一款基于mvc设计模式的php框架,其易用性和灵活性使得它受到了许多开发者的喜爱。在这篇文章中,我们将介绍如何使用cakephp框架来开发web应用程序。…

    编程技术 2025年3月30日
    100
  • Word视图有哪几种

    php小编草莓今天为大家介绍word文档的几种视图模式。word文档可分为“普通视图”、“页面布局视图”、“web版式视图”、“阅读版式视图”和“大纲视图”等几种视图模式,每种视图都有不同的功能和适用场景,方便用户根据需要选择合适的视图进行…

    2025年3月29日 互联网
    100
  • 解决html视图解析器,html乱码

    这篇文章介绍的内容是解决html视图解析器,html乱码,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 项目编码,html页面编码浏览器解析编码都应该一致 html页面可以添加: 登录后复制 html视图解析器:      …

    编程技术 2025年3月28日
    100
  • laravel视图在哪个目录

    laravel视图在Resources目录中的views目录中。resource目录包含了应用视图文件和未编译的原生前端资源文件,以及本地化语言文件;该目录里的views目录就是视图目录,是视图文件存储目录(视图文件也可以做分目录管理)。 …

    2025年3月13日
    200
  • 如何在Vue中实现可编辑的表格

    在许多Web应用程序中,表格是必不可少的一个组件。表格通常具有大量数据,因此表格需要一些特定的功能来提高用户体验。其中一个重要的功能是可编辑性。在本文中,我们将探讨如何使用Vue.js实现可编辑的表格,并提供具体的代码示例。 步骤1:准备数…

    2025年3月13日
    300
  • Vue.js的路由命名和命名视图

    这次给大家带来vue.js的路由命名和命名视图,vue.js路由命名和命名视图的注意事项有哪些,下面就是实战案例,一起来看一下。 路由命名我们可以在设置路由时,给设一个name属性,导航过程中直接:to=”{name: &#82…

    编程技术 2025年3月8日
    300
  • vue操作数据改变更新视图

    这次给大家带来vue操作数据改变更新视图,vue操作数据改变更新视图的注意事项有哪些,下面就是实战案例,一起来看一下。 前记 三个月前看了vue源码来分析如何做到响应式数据的, 文章名字叫vue源码之响应式数据, 最后分析到, 数据变化后会…

    编程技术 2025年3月8日
    400
  • Vue 实现树形视图数据功能

    这篇文章主要介绍了关于实现vue 实现树形视图数据功能,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 利用简单的树形视图实现,熟悉了组件的递归使用 这是模拟的树形图数据 let all={   name:’all’,   c…

    2025年3月8日 编程技术
    400
  • vue数据控制视图如何实现(附代码)

    这次给大家带来vue数据控制视图如何实现(附代码),vue数据控制视图实现的注意事项有哪些,下面就是实战案例,一起来看一下。 前记 三个月前看了vue源码来分析如何做到响应式数据的, 文章名字叫vue源码之响应式数据, 最后分析到, 数据变…

    编程技术 2025年3月8日
    300
  • Vue实现树形视图数据步骤详解

    这次给大家带来Vue实现树形视图数据步骤详解,Vue实现树形视图数据的注意事项有哪些,下面就是实战案例,一起来看一下。 这是模拟的树形图数据 let all={ name:’all’, children:{ A:{ name:’A’, ch…

    2025年3月8日 编程技术
    300

发表回复

登录后才能评论