作者:Kuky_xs 博客:https://www.jianshu.com/p/8cdf099e974f 1 正文 《django入门:环境及项目搭建》 《django入门:数据模型》 《django入门...:视图及模版》 《django入门:Admin管理系统及表单》 终于到最后一部分了,这部分我们将通过 django 自带的通用视图类替换之前写的视图函数,对视图进行重构 2 利用 django 通用视图类创建类视图...1.创建视图类 import markdown from django.shortcuts import render from django.views.generic import ListView...context = super(PostDetailView, self).get_context(**kwargs) form = CommentForm() # 更新...详情界面 有时候如果我们的数据过多,同一页加载全部数据,用户的体验肯定不好,我们通过通用视图类来创建分页,这边为了方便显示,我们会设置每页加载一篇文章 3 通过 ListView 创建分页 1.指定
对于这些场景,Django提供了几个class-based view来处理: ListView UpdateView CreateView DeleteView 这几个类视图分别对应着查询ListView...、更新UpdateView、创建CreateView、删除DeleteView这几个操作。...查询视图 ListView 对应官网文档 首先,从最简单的展示开始。...这个'object_list'的变量名是Django默认提供的,也可以人为修改为你想要的变量名,详细请看官网文档。 ---- 修改视图 接下来就是第二类修改视图了。...post——接收从get发来的请求,数据合法性校验,插入数据库 UpdateView: get——根据model从数据库取出实例,并渲染form post——接收从get来的请求,数据合法性校验,并更新数据库
from django.views import generic from blog.models import * from ipware.ip import get_ip class IndexView
文章目录 前言 1 编写一个简单的表单 1.1 模版中新增表单 1.2 视图中新增交互处理 1.3 重定向的 results 页面增加显示 1.4 完善 results.html 页面代码 2 通用视图... 2 通用视图 投票应用中的 detail 和 results 视图的操作都差不多,显得冗余。...由于这种情况特别常见,Django 提供一种快捷方式,叫做“通用视图”系统。 通用视图将常见的模式抽象化,可以使你在编写应用时甚至不需要编写Python代码。...让我们将我们的投票应用转换成使用通用视图系统,仅仅需要做以下几步来完成转换: 1.转换 URLconf。 2.删除一些旧的、不再需要的视图。 3.基于 Django 的通用视图引入新的视图。...小结 这节终于用上了通用视图,再一次感受到了Django框架,把冗余的东西都做了简化抽象。 定义了通用视图,传递给它指定模版,以及模型,一切就OK了。它比 render 快捷函数更加简洁。 ----
Django源码学习-8-ListView 通用视图-续 ?...django基于类的通用视图就是将一些mixin合成为有用的通用视图。...基于类的通用视图(以及任何继承了Django提供的基础类的基于类的视图)都能够以下面两种方式被配置:子类化,或者直接通过URLconf来传递参数。...Django有一个通用视图来完成这个功能 - TemplateView - 因此可以子类化它,然后重写模板的名称: from django.views.generic import TemplateView...因为类视图本身是一个类,把URL指向 as_view 这个类方法来替代类本身,这是类视图的入口点: from django.urls import path from some_app.views import
1、通用视图 urls.py: from django.views.generic import TemplateView path(r'about/',TemplateView.as_view(template_name...="about.html")), 2、通用视图 about.html xx/templates/about.html 3、List obj的通用视图 urls.py: from django.views.generic...BlogPost path(r'bloglist/',ListView.as_view(template_name='bloglist.html',model=BlogPost)), 4、List obj的通用视图...from django.views.generic import ListView class IndexView(ListView): template_name = "blog/index.html...import reverse_lazy from django.views.generic.edit import DeleteView from .models import Article class
执行这个视图的时候,self.object_list将包含视图正在操作的对象列表(通常是一个查询集,但不是必须)....执行这个视图的时候,self.object将包含视图正在操作的对象....显示用于创建对象的表单的视图,通过验证错误信息重新显示视图,并且保存对象....', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions',...可以直接用Django通用视图里的UpdateView和CreateView。
Django源码学习-8-ListView&DetailView通用视图 ?...Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...视图负责接受一个 HttpRequest,并返回 HttpResponse 或 抛出异常(Http404)。...from django.views.generic import ListView ListView 通过重写queryset, template_name和context_object_name来完成...可以添加额外的模板 context , 默认将 model / queryset 指定的 objects 添加到模板 context get_queryset() 默认返回属性 queryset from django.views.generic
显示对象列表 文章列表页 DetailView 显示对象详情 文章详细页 FormView 提交From 网站联系我们或emai订阅form CreateView 创建对象 创建新文章页 UpdateView 更新对象...执行这个视图的时候,self.object将包含视图正在操作的对象....显示用于创建对象的表单的视图,通过验证错误信息重新显示视图,并且保存对象....', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', '...可以直接用Django通用视图里的UpdateView和CreateView。
Django源码学习-7-View 视图函数 ?...Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...Django的通用视图可以减少开发的单调性,它抽象出一些在视图开发中常用的代码和模式,这样就可以在无需编写大量代码的情况下,快速编写出常用的视图函数。 ?...from django.views.generic import View from django.views.generic.base import RedirectView, TemplateView...object = super().get_object() # Record the last accessed date # 当有人访问该页面时,更新最后访问时间
应该看到一个投票结果页面,并且在每次投票后都会更新。 如果提交时没有选择任何Choice,应该会看到错误信息。 注: views()视图的代码确实有一个小问题。...下面将投票应用转换成使用通用视图系统,这样可以删除许多冗余的代码。仅仅需要做以下几步来完成转换: 修改URLconf; 删除一些旧的无用的视图; 采用基于通用视图的新视图。...下面将删除旧的index、detail和 results 视图,并用Django的通用视图代替: # polls/views.py from django.shortcuts import get_object_or...现在你可以运行开发服务器,然后试试基于泛型视图的应用程序了。 更多关于通用视图的详细信息,请查看通用视图文档。...Part3-视图和模板 Django 1.10中文文档-第一个应用Part4-表单和通用视图
Django REST Framework是基于Django的一个用于构建Web API的框架。它提供了许多用于构建Web API的工具和实用程序,其中最常用的是类视图。...类视图是一种Django REST Framework的API视图,它是基于类的视图。它提供了一种方便的方式来编写可重用的Web API视图,并带有许多有用的内置功能。...APIViewAPIView是Django REST Framework中最基本的类视图之一。它提供了一个通用的方式来处理HTTP请求,并返回一个HTTP响应。...GenericAPIViewGenericAPIView是一个更高级的类视图,它提供了许多有用的功能。它结合了APIView和Mixin类,以提供常见的API操作(例如获取,创建和更新)的默认实现。...ViewSetViewSet是一种通用的类视图,它提供了处理HTTP请求的通用方式。与APIView不同,您不需要手动处理请求,并确定要返回的响应。相反,您可以使用内置的方法来处理常见API操作。
今天学习如何使用基于类的视图来创建,更新和删除帖子。一旦我们习惯使用这种方式会非常方便。 接下来开始: ?...修改django_project/blog/views.py,增加帖子的增删改查视图类方法: ? ? 修改django_project/blog/urls.py,添加帖子相关视图url规则: ?...修改django_project/blog/models.py,增加获取绝对路径方法: ?...在django_project/blog/templates/blog下新建post_form.html帖子新建和更新表单: ?...点击更新按钮进入更新页面,输入更新内容提交: ? ? 点击删除按钮跳转到删除确认页面: ? 点击确认可删除。今天就到这里下节见! 关注公号 下面的是我的公众号二维码图片,欢迎关注。
Django REST Framework(以下简称DRF)是基于Django框架的一个强大的Web API框架。...它是一个开源项目,为开发者提供了一种方便、灵活和可扩展的方式来构建和发布Web APIs。...DRF可以轻松地与Django ORM和其他第三方库集成,这使得构建Web API变得非常简单。在DRF中,序列化器是一个重要的概念。...DRF提供了许多不同类型的视图,包括基于函数的视图(Function-Based Views)、基于类的视图(Class-Based Views)和通用视图(Generic Views)。...总之,Django REST Framework是一个功能强大的Web API框架,可以大大简化Web API的开发。
-类基础视图(APIView) 不同于django常规的view类,优点: * 提供了更好用的request对象,不同于普通的django HttpRequest更好用。...函数基础视图(@api_view()) 一种函数基础视图来装饰django的普通视图,我们同样可以使用request来接受请求和response响应。...REST框架提供的通用视图允许快速构建API观点紧密地映射到数据库模型,如果通用视图不适合的需要API, 可以使用常规APIView类,或重用mixin和基类使用的通用视图来组成自己的组可重用通用视图。...通用视图可以设置一些类属性在通用视图内,也可以根据特殊要写重写它的内部视图方法 使用.as_views()来转换成视图函数 url(r’^/users/’, ListCreateAPIView.as_view...model对象 UpdateModelMixin: 提供Update方法,更改一个模型对象 DestroyModelMixin:提供destroy方法,删除一个模型对象 4)Generic Generic通用视图类提供具体操作的通用视图类
Django查看范例 使用示例说明如何创建和使用Django视图。...要检查如何使用Django的MVT(模型,视图,模板)结构制作基本项目,请访问创建项目Django。 视图类型 Django视图分为两大类: 基于功能的视图 基于类的视图 ?...基于功能的视图通常分为4种基本策略,即CRUD(创建,检索,更新,删除)。CRUD是用于开发的任何框架的基础。 基于功能的视图示例– 让我们创建一个基于函数的视图列表视图以显示模型的实例。...类似地,基于函数的视图可以使用用于创建,更新,检索和删除视图的逻辑来实现。...Django CRUD(创建,检索,更新,删除)基于功能的视图:- 创建视图–基于函数的视图Django 细节视图–基于函数的视图Django 更新视图–基于函数的视图Django 删除视图–基于函数的视图
为此,django-rest-framework 分别提供了对应通用类视图函数。...同样的,针对 Web 开发中的常见逻辑,django-rest-framework 也提供了通用视图集,进一步简化开发工作。...视图集也有 2 个基类:ViewSet 和 GenericViewSet,前者是最基本的视图集类,后者拓展自前者,拓展了很多 Web 开发中的通用逻辑。...要注意一点的是,视图集基类提供的是除资源操作以外的通用逻辑(例如 HTTP 请求预处理、HTTP 响应后处理、认证、鉴权等),而对于资源的操作(如序列化、更新、删除资源等)则放在相应的 Mixin 混入类里...django-rest-framework 提供了资源操作的 5 个混入类,分别对应资源的创建、查询、更新、删除。
Django基于MVT(模型视图模板)体系结构,并围绕CRUD(创建,检索,更新,删除)操作展开。最好将CRUD解释为构建Django Web应用程序的一种方法。...检索 –以列表的形式(列表视图)读取,检索,搜索或查看现有条目,或详细检索特定的条目(详细视图) 更新 –更新或编辑数据库表中的现有条目 删除 –删除,停用或删除数据库表中的现有条目 Django CRUD...(创建,检索,更新,删除)基于函数的视图 使用示例说明如何创建和使用CRUD视图。...检索视图 检索视图基本上分为两种视图:详细视图和列表视图。 列表显示 列表视图是指一种视图(逻辑),用于以特定顺序列出数据库中表的所有或特定实例。...更新视图 更新视图是一种视图(逻辑),用于使用一些其他详细信息从数据库更新表的特定实例。它用于更新数据库中的小肠,例如,更新geeksforgeeks上的文章。
Blog 管理 用于创建和管理 blog 应用的包。...django-extra-views, star:593 - Django 的基于类的通用视图都很赞,那就再实现一些。...(2 年未更新) django-activity-stream, star:1181 - 基于站点上的行为创建通用的活动流。用户可关注任何行为者的个人活动流。...(2 年未更新) django-braces, star:1220 - 可复用的,通用的 Django mixins。...外部文档 关于 Django 特性的其它信息源。 Classy Class-Based Views - 对每个 Django 中基于类的通用视图的全部方法和属性进行了详细的描述。
Django尝试从model和 template层移除一些单调的情况,但是Web开发者依然会在view(视图)层经历这种厌烦。 Django的通用视图被开发用来消除这一痛苦。...Django通过通用视图来完成下面一些功能: 为单一的对象展示列表和一个详细页面。...的确,大多数来自Django开发新手 的问题是如何能使得通用视图的使用范围更广。...在一些三方的应用中,有更多通用视图的示例,或者你可以自己按需编写。 对象的通用视图 TemplateView确实很有用,但是当你需要 呈现你数据库中的内容时Django的通用视图才真的会脱颖而出。...因为这是如此常见 的任务,Django提供了一大把内置的通用视图,使生成对象的展示列表和详细视图 的变得极其容易。 让我们来看一下这些通用视图中的”对象列表”视图。
领取专属 10元无门槛券
手把手带您无忧上云