首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于通用视图:ListView 和 DetailView

于是,Django 把这些相同逻辑代码抽取了出来,写成了一系列通用视图函数,即基于通用视图(Class Based View)。...使用视图Django 推荐做法,而且熟悉了视图使用方法后,能够减少视图函数重复代码,节省开发时间。接下来就让我们把博客应用中视图函数改成基于通用视图。...接下来就是要将视图转换成函数视图为什么需要将视图转换成函数视图呢?...对于这种类型需求,Django 提供了一个 DetailView 视图。...此外,这里是 Django 官方文档对视图讲解,尽管我觉得这部分文档对视图也讲得不是很清楚,不过也值得作为参考吧 基于视图概述。

2.6K70
您找到你想要的搜索结果了吗?
是的
没有找到

Django来敲门~第一部分【9.使用Django内置视图处理对象简化开发】

后面会详细讲解Django每一部分使用方式和API了 本节内容 内置视图处理对象定义 内置视图处理对象使用 源代码分析 1....常规情况下,对应页面中要展示数据列表视图,通过继承Djangodjango.views.generic.ListView对象来实现,页面中要展示数据信息视图,通过继承Djangodjango.views.generic.DetailView...问题详细信息页面和问题解决方案结果展示页面,继承了generic.DetailView内置,通过model指定了展示数据类型,template_name指定了HTML视图名称 vote...DetailView和ResultView中要查询数据,同样也是通过主键编号进行查询,默认变量名称是pk,所以在路由中要进行如下修改配置,才可以正常使用 改造polls/urls.py路由模块...源码分析 此时,会有个问题困扰着我们,为什么要继承视图处理为什么要继承不同处理ListView和DetailView

88630

django 1.8 官方文档翻译: 1-2-4 编写你第一个Django应用,第4部分

当你创建一个表单为了修改服务器端数据时,请使用 method=”post” 。这不是 Django 特定技巧;这是优秀 Web 开发实践。...这个技巧不是特定Django ;它是优秀 Web 开发实践。 在本例中,我们在 HttpResponseRedirect 构造方法中使用了 reverse() 函数。...修正 URL 处理到对应视图。 请继续阅读了解详细信息。 为什么要重构代码?...另外 ListView 自动生成上下文变量名是 poll_list 。...你也可以删除不再需要 HttpResponse 导入包了。 运行服务器,并且使用下基于通用视图新投票应用。 有关通用视图完整详细信息,请参阅 通用视图文档.

1.4K10

django 1.8 官方文档翻译: 3-4-1 基于视图

基于视图 视图是一个可调用对象,它接收一个请求然后返回一个响应。这个可调用对象可以不只是函数,Django 提供一些可以用作视图。它们允许你结构化你视图并且利用继承和混合重用代码。...基于视图简介 内建基于通用视图 使用基于视图处理表单 使用混合来扩展视图 基本示例 Django 提供基本视图,它们适用于广泛应用。...如果你只是修改基于视图一些简单属性,你可以将它们直接传递给as_view()方法调用: from django.conf.urls import url from django.views.generic...TemplateView是一个不是一个函数,所以我们将URL 指向as_view()方法,它让基于视图提供一个类似函数入口: # urls.py from django.conf.urls...,参考下一主题通用基于视图

84630

django 1.8 官方文档翻译: 3-4-2 内建显示视图

网站:http://python.usyiyi.cn/django/index.html 基于内建通用视图 编写Web应用可能是单调,因为你需要不断重复某一种模式。...这就是说,通用视图有一些限制。如果你将你视图实现为通用视图子类,你就会发现这样能够更有效地编写你想要代码,使用你自己基于或功能视图。...model参数指定了视图在哪个数据库模型之上进行操作,这适用于所有的需要 操作一个单独对象或者一个对象集合通用视图。...然而,model参数并不是唯一能够指明视图基于哪个对象进行操作方法 – 你同样可以使用queryset参数来指定一个对象列表: from django.views.generic import DetailView...详见基于视图参考。 动态过滤 另一个普遍需求是在给定列表页面中根据URL中关键字来过滤对象。

1.4K40

django 1.8 官方文档翻译: 3-4-5 内建基于视图API

内建基于视图API 基于视图API 参考。另请参见基于视图 简介。...基础视图 View TemplateView RedirectView 通用显示视图 DetailView ListView 通用编辑视图 FormView CreateView UpdateView...基于视图在URL 模式中部署使用as_view() 方法: urlpatterns = [ url(r'^view/$', MyView.as_view(size=42)), ] 视图参数线程安全性...参数必须对应于在中已经存在属性(hasattr 检查可以返回True)。 基础视图 VS. 通用视图 基于基础视图可以认为是父视图,它们可以直接使用或者继承它们。...它们不能满足项目中所有的需求,在这种情况下有Mixin 可以扩展基础视图功能。 Django 通用视图建立在基础视图之上,用于作为经常用到功能快捷方式,例如显示对象详细信息。

83120

Django 官方推荐姿势:视图

于是,django 把这些相同逻辑代码抽取了出来,写成了一系列通用视图函数,即基于通用视图(Generic Class Based View)。...使用视图django 推荐做法,熟悉了视图使用方法后,能够减少视图函数重复代码,节省开发时间。接下来就让我们把博客应用中视图函数改成基于通用视图。...接下来就是要将视图转换成函数视图为什么需要将视图转换成函数视图呢?...对于这种类型需求,django 提供了一个 DetailView 视图。...此外,这里是 django 官方文档对视图讲解,尽管我觉得这部分文档对视图也讲得不是很清楚,不过也值得作为参考吧 基于视图概述[3]。

1.3K20

Django内置通用视图CBV及示例

django自带view如下表所示: 名 功能 例子 View 基本View, 可以在任何时候使用 见后面详细介绍 RedirectView 重新定向到其他URL 将访问"/log-in/"用户重新定向到..."/login/" TemplateView 显示Django HTML template 一般网站中使用模板显示页 ListView 显示对象列表 文章列表页 DetailView 显示对象详情 文章详细页...方法: get_queryset():获取此视图对象列表.必须是可迭代或者可以使查询集.默认返回queryset属性.可以通过重写该方法实现动态过滤.让这种方式能够工作关键点,在于当视图被调用时...显示用于编辑现有对象表单视图,重新显示具有验证错误信息视图,并且保存对象.这里使用从对象模型自动生成表单(除非手动制定表单)....context_object_name = 'employee_detail' #指定获取模型列表数据保存变量名。这个变量会被传递给模板。

3.2K10

django 入门:通用视图重构视图

视图及模版》 《django入门:Admin管理系统及表单》 终于到最后一部分了,这部分我们将通过 django 自带通用视图替换之前写视图函数,对视图进行重构 2 利用 django 通用视图创建视图...1.创建视图 import markdown from django.shortcuts import render from django.views.generic import ListView..., DetailView from django.shortcuts import get_object_or_404 from blog.models import Post # 获取相应模型下全部数据...,通过复写该方法,改变默认行为 def get_queryset(self): # 视图中,从 url 捕获命名组参数值保存在实例 kwargs 中,是一个字典...详情界面 有时候如果我们数据过多,同一页加载全部数据,用户体验肯定不好,我们通过通用视图来创建分页,这边为了方便显示,我们会设置每页加载一篇文章 3 通过 ListView 创建分页 1.指定

86920

Django 1.10中文文档-第一个应用Part4-表单和通用视图

仅仅需要做以下几步来完成转换: 修改URLconf; 删除一些旧无用视图; 采用基于通用视图视图。...变成 改进视图 下面将删除旧index、detail和 results 视图,并用Django通用视图代替: # polls/views.py from django.shortcuts...这里使用两个通用视图:ListView和DetailView。这两个视图分别代表“显示对象列表”和“显示特定类型对象详细信息页面”抽象概念。 每个通用视图需要知道它将作用于哪个模型。...而对于DetailView,question变量会被自动提供,因为我们使用了Django模型(Question),Django会智能选择合适上下文变量。...现在你可以运行开发服务器,然后试试基于泛型视图应用程序了。 更多关于通用视图详细信息,请查看通用视图文档。

2.3K40

django 1.8 官方文档翻译: 3-4-3 使用基于视图处理表单

使用基于视图处理表单 表单处理通常有3 个步骤: 初始GET (空白或预填充表单) 带有非法数据POST(通常重新显示表单和错误信息) 带有合法数据POST(处理数据并重定向) 你自己实现这些功能经常导致许多重复样本代码...为了避免这点,Django 提供一系列通用基于视图用于表单处理。...这些通用视图将自动创建一个ModelForm,只要它们能知道使用哪一个模型: 如果给出model属性,则使用该模型。 如果get_object() 返回一个对象,则使用该对象。...注意这里我们是如何配置通用基于视图;我们自己没有写任何逻辑: #views.py from django.views.generic.edit import CreateView, UpdateView...,你可以设置你视图template_name 或template_name_suffix。

1.8K20

马哥金牌分享 | 十分钟学会用Django快速搭建一个blog

这套框架是以比利时吉普赛爵士吉他手Django Reinhardt来命名Django是一个基于MVC构造框架。...但是在Django中,控制器接受用户输入部分由框架自行处理,所以Django 里更关注是模型(Model)、模板(Template)和视图(Views),称为MTV模式。...数据结构 blog常用数据结构: 文章,分类,评论,注册 一般来说一个blog至少包含这4个表 我们今天写文章表和分类表 大家可以先自己想下: 文章表和分类表包含字段是哪些?...视图 Django有很多优秀视图: View DetailView ListView FormView CreateView DeleteView UpdateView 我们blog里面暂时只用到了...ListView和DetailView 4.2 使用dajngo自带ListView v 编写appviews.py 4.3 使用django自带DetailView 4.4 配置appurls.py

2.4K51

python-Django-视图函数(二)

视图视图是一种更高级别的视图函数类型,它使用基于方法来处理HTTP请求。视图通常比函数视图更灵活和可扩展,并提供更好代码组织和可重用性。...Django提供了许多内置视图,如DetailView和ListView,可以用于快速创建常见Web应用程序功能。...以下是一个使用视图示例,它使用Django内置TemplateView来渲染HTML模板:from django.views.generic import TemplateViewclass HelloView...Django REST框架是一种流行用于构建Web APIDjango扩展,它提供了许多内置API视图和工具。...以下是一些常见视图函数装饰器及其用法:@login_required:要求用户在访问视图之前进行身份验证。@permission_required:要求用户具有特定权限才能访问视图

61632

视图 vs. 函数视图

在阅读本篇之前,请记住一点「基于视图不会替代基于函数视图」. 介绍 无论是视图还是基于函数视图, 最终绑定到 URL Conf 都是函数. 为什么这么说?...这个是一大优点. 基于视图例子 举例创建一个基于视图,分别处理不同 HTTP Method ....基于通用视图(GV) Django 引入了基于通用视图, 来处理 web 常见用例需求, 比如创建新对象,表单处理,列表视图,分页,归档视图等....各种观点 #1 观点 「使用所有的通用视图(GV)」 此观点认为,Django 提供这些通用视图就是让减少开发效率, 为什么不用呢?...Django 官方建议是: 如果你难以将自己视图实现为通用视图(重点是generic views)子类, 那么你直接使用基于 View 视图或功能视图编写你所需代码更更加有效.

2.4K10

drf之请求、响应、视图

drf 提供视图主要作用有: 控制序列化器执行(检验、保存、转换数据) 控制数据库查询执行 它还提供了许多视图和拓展,用于简化视图编写。...2.1 两个视图 2.1.1 APIView APIView是drf 提供所有视图,继承自DjangoView父。...APIView与View不同之处在于: 传入到视图方法中是REST frameworkRequest对象,而不是DjangoHttpRequeset对象; 视图方法可以返回REST framework...使用示例,基于GenericAPIView和5个视图拓展改写接口: urls.py : from django.urls import path,re_path from app01 import views...视图在使用as_view()方法时候,才会将action 动作与具体请求方式对应上。

2.1K20
领券