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

Django源码学习-8-ListView&DetailView通用视图

Django网络应用开发5项基础核心技术包括模型(Model)设计,URL 设计与配置,View(视图)编写,Template(模板)设计Form(表单)使用。...Django通用视图可以减少开发单调性,它抽象出一些在视图开发中常用代码模式,这样就可以在无需编写大量代码情况下,快速编写出常用视图函数。 ?...', 'FormView', 'CreateView', 'UpdateView', 'DeleteView', 'ListView', 'GenericViewError', ] class...pass ① ListView:显示对象列表 用于展示一个 Model 里面的所有对象,也可以是其子集 (queryset) ,支持分页。...② DetailView:显示一个对象某个属性详细信息 用于显示某一 Model 中一个 object 详细信息。

1.4K10

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

基础视图 View TemplateView RedirectView 通用显示视图 DetailView ListView 通用编辑视图 FormView CreateView UpdateView...—— 索引 Simple generic views View TemplateView RedirectView Detail Views DetailView List Views ListView...这表示不应该使用列表、字典或其它可变对象作为视图参数。如果你真这么做而且对共享对象做过修改,某个用户行为可能对后面访问同一个视图用户产生影响。...它们不能满足项目中所有的需求,在这种情况下有Mixin 可以扩展基础视图功能。 Django 通用视图建立在基础视图之上,用于作为经常用到功能快捷方式,例如显示对象详细信息。...它们提炼视图开发中常见风格模式并将它们抽象,这样你可以快速编写常见视图而不用重复你自己

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

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

ORM,即Object-Relational Mapping(对象关系映射),它作用是在关系型数据库业务实体对象之间作一个映射,这样,我们在具体操作业务对象时候,就不需要再去复杂SQL语句打交道...,只需简单操作对象属性方法。...表之间关系: 一个用户可以发表多篇文章 一个分类里面也多篇文章 分类用户没有直接关系 理清这些之后,现在开始编写对应model模型 2.3 编写models.py 2.4 创建和同步数据库 3...视图 Django有很多优秀视图: View DetailView ListView FormView CreateView DeleteView UpdateView 我们blog里面暂时只用到了...ListViewDetailView 4.2 使用dajngo自带ListView v 编写appviews.py 4.3 使用django自带DetailView 4.4 配置appurls.py

2.4K51

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

如果我们创建一个应用来管理会议,那么 一个 TalkListView (讨论列表视图)一个 RegisteredUserListView ( 注册用户列表视图)就是列表视图一个例子。...允许用户创建,更新和删除对象 – 以授权或者无需授权方式。 总的来说,这些视图提供了一些简单接口来完成开发者遇到大多数常见任务。...DetailView通用视图提供了一个publisher对象给context,但是我们如何在模板中添加附加信息呢?...要在你自己想要改变上下文类中保持这一行为,你应该确保在超类中调用了get_context_data。如果没有任意两个类尝试定义相同键,会返回异常结果。...注意 如果你在访问 /books/acme/时出现404错误,检查确保你确实有一个名字为“ACME Publishing”出版商。通用视图在这种情况下拥有一个allow_empty 参数。

1.4K40

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

HttpResponseRedirect 对象需要一个参数:用户将被重定向 URL (请继续看下去在这情况下我们是如何构造 URL ) 。...正如在教程 第3部分提到,request 是一个 HttpRequest 对象。想了解 HttpRequest 对象更多内容,请参阅 request response 文档 。...P\d+)/vote/$', 'polls.views.vote', name='vote'), ) 修改 views 在这我们将使用两个通用视图: ListView DetailView...这两个视图分别用于显示两种抽象概念 “显示一系列对象列表” “显示一个特定类型对象详细信息页”。 每个视图都需要知道使用哪个模型数据。因此需要提供将要使用 model 参数。...我们也指定了 results 列表视图 template_name – 这确保了 results 视图 detail 视图渲染时会有不同外观,虽然它们有一个 DetailView 隐藏在幕后。

1.4K10

diango之基于内置视图CBS编程

django自带view如下表所示: 类名 功能 例子 View 基本View, 可以在任何时候使用 见后面详细介绍 RedirectView 重新定向到其他URL 将访问"/log-in/"用户重新定向到..."/login/" TemplateView 显示Django HTML template 一般网站中使用模板显示ListView 显示对象列表 文章列表页 DetailView 显示对象详情 文章详细页...FormView 提交From 网站联系我们或emai订阅form CreateView 创建对象 创建新文章页 UpdateView 更新对象 修改文章页 DeleteView 删除对象 删除文章页...Generic date views 显示一段时间内对象 按时间归类博客 2....ListView简介 listview是一个展示列表view,返回是一个template,包含两个关键方法: def get_context_data(self, **kwargs):

69330

基于类通用视图:ListView DetailView

在开发网站过程中,有一些视图函数虽然处理对象不同,但是其大致代码逻辑是一样。比如一个博客一个论坛,通常其首页都是展示一系列文章列表或者帖子列表。...='index'), ... ] 前面已经说过每一个 URL 对应着一个视图函数,这样当用户访问这个 URL 时,Django 就知道调用哪个视图函数去处理这个请求了。...P[0-9]+)/$', views.CategoryView.as_view(), name='category'), ] 访问以下某个分类页面,可以看到依然显示是该分类下全部文章列表,使用视图函数..., DetailView # 记得在顶部导入 DetailView class PostDetailView(DetailView): # 这些属性含义 ListView 是一样...最终传递给浏览器 HTTP 响应就是 get 方法返回 HttpResponse 对象。 还是无法理解么?在不涉及源码情况下我也只能讲这么多了。

2.6K70

Django 官方推荐姿势:类视图

'index'), ... ] 前面已经说过每一个 URL 对应着一个视图函数,这样当用户访问这个 URL 时,Django 就知道调用哪个视图函数去处理这个请求了。...将 archive tag 视图函数改写成类视图 这里没有什么新东西要讲了,学以致用,这个任务就交给你自己了。..., DetailView # 记得在顶部导入 DetailView class PostDetailView(DetailView): # 这些属性含义 ListView 是一样...最终传递给浏览器 HTTP 响应就是 get 方法返回 HttpResponse 对象。 还是无法理解么?在不涉及源码情况下我也只能讲这么多了。...配置好详情页视图之后,访问一下文章详情,可以看到页面返回结果函数视图是一模一样,至此,类视图就改造完毕。

1.3K20

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

后面会详细讲解Django每一部分使用方式API了 本节内容 内置视图处理对象定义 内置视图处理对象使用 源代码分析 1....,不够~所以提供了常规一些页面视图对象对页面模板模板中要展示数据进行了封装处理。...常规情况下,对应页面中要展示数据列表视图,通过继承Djangodjango.views.generic.ListView对象来实现,页面中要展示数据信息视图,通过继承Djangodjango.views.generic.DetailView...源码分析 此时,会有个问题困扰着我们,为什么要继承视图处理类,为什么要继承不同处理类ListViewDetailView?...我们可以从上述代码中看到,继承自ListView视图处理类类型,已经在内部封装好了分页操作功能,这也是我们项目中经常用到技术呢,非常棒吧,我们继承了这个视图处理对象,就可以在后续项目中,通过重写它属性方法来快捷完成数据展示分页功能了

88630

类视图 vs. 函数视图

这个是类一大优点. 基于类视图例子 举例创建一个基于类视图,分别处理不同 HTTP Method ....基于类通用视图(GV) Django 引入了基于类通用视图, 来处理 web 常见用例需求, 比如创建对象,表单处理,列表视图,分页,归档视图等....你可以直接使用它们来加快开发过程,以下是可用视图概述: 基础视图 View (最基本View) TemplateView RedirectView 通用展示视图 ListView DetailView...任务需要在多个视图中重用代码地方, 这个场景下 CBV 是最好选择。 我建议是选择第三种,正如那句话『从需求场景选择最佳实现』 最佳做法取决你自己, ....优点缺点 有关 CBV FBV 优缺点, 仅供参考.

2.4K10

基于django视频点播网站开发-step6-个人中心功能

其中个人资料、修改密码、订阅设置是对用户信息编辑,反馈建议是属于创建新数据。...个人资料 这里主要是对个人资料进行编辑,先显示用户原有的信息,然后用户即可对其进行修改并保存,对于编辑功能,django有自己解决方案,即通过通用视图类UpdateView对模型进行更改。...我们这里继承了UpdateView来实现更新操作,DetailView类似,我们这里也设置了modeltemplate_name 还有form_class。...可以看到我们还继承了LoginRequiredMixinAuthorRequiredMixin两个类,这两个类属于公共类,其中LoginRequiredMixin用途是:只允许登录用户访问该视图类...,AuthorRequiredMixin用途是:只允许用户自己查看自己个人资料,别人是无法查看

1.1K00

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

现在,创建一个Django视图来处理提交数据,在Part3中已经创建了一个URLconf ,包含这一行: # polls/urls.py url(r'^(?...,允许你通过键名访问提交数据。...如果您网站两位用户尝试在完全相同时间投票,这可能会出错。这被称为竞争条件。...如果您有兴趣,可以阅读使用F()避免竞争条件,以了解如何解决此问题; 使用通用视图:减少代码冗余 上面的detail、indexresults视图代码非常相似,有点冗余,这是一个程序猿不能忍受...这里使用两个通用视图:ListViewDetailView。这两个视图分别代表“显示对象列表”“显示特定类型对象详细信息页面”抽象概念。 每个通用视图需要知道它将作用于哪个模型。

2.3K40

python-Django-视图函数(二)

常见视图函数类型用法函数视图函数视图是最基本最常见视图函数类型。函数视图是一个简单Python函数,它接收一个HttpRequest对象作为参数,并返回一个HttpResponse对象。...类视图通常比函数视图更灵活可扩展,并提供更好代码组织可重用性。Django提供了许多内置类视图,如DetailViewListView,可以用于快速创建常见Web应用程序功能。...以下是一些常见视图函数装饰器及其用法:@login_required:要求用户访问视图之前进行身份验证。@permission_required:要求用户具有特定权限才能访问视图。...@require_http_methods:限制视图只能处理特定HTTP方法(GET,POST等)。@csrf_exempt:允许视图处理不带CSRF令牌POST请求。...以下是一个使用@login_required装饰器示例,它要求用户访问受保护视图之前进行身份验证:from django.contrib.auth.decorators import login_requiredfrom

61732

Django实战篇-论坛回帖视图

使用 Django 模型,都是 django.db.models.Model 类子类。 每个类将被转成数据库表。 每个字段由 django.db.models.Field 子类转成数据库列。...模型之间关系使用 ForeignKey 字段。 位置参数 related_name 用于引用关联模型。 related_name 参数将用于创建反向关系。...在 论坛回帖模型中,related_name = "+",不需要这种反向关系,不需要关系用户修改过哪些帖子。...# 主题回复列表, 复用分页组件 paginate_by = 20 def get_context_data(self, **kwargs): # 防止相同用户刷新页面被统计为多次访问...template_name = 'board/edit_post.html' pk_url_kwarg = 'post_pk' context_object_name = 'post' # 其他用户可以编辑所有帖子问题

52620

P1-Android基于MVP实现号码归属地查询

[4].案例网络模块是自己对okhttp3封装,当然你也完全可以使用其他上层网络框架 [5].相比课程,加入缓存机制,使用前面写过缓存封装:详见:缓存文件封装 [6].使用前面的listview...封装类:详见:ListView封装 [7].Json解析详见:Json在Android中使用--Gson 项目结构及类图 ?...沟通桥梁 1.基类BasePresenter:为了方便让控制层Activity生命周期同步 /** * 作者:张风捷特烈 * 时间:2018/4/25:9:40 * 邮箱:1981462002...* 获取网络数据 * * @param isPost */ private void getData(boolean isPost) { //创建...:https://www.jianshu.com/c/004f3fe34c94 张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com 你喜欢与支持将是我最大动力

63220

Django Pagination 简单分页

,你可以把它当做一个模板应用于自己任何需要分页视图函数。...不过在我们博客项目中,我们不必写这些代码了。回顾在 基于类通用视图:ListView DetailView内容,我们已将视图函数转换成了类视图。...ListView 传递了以下分页有关模板变量供我们在模板中使用: paginator ,即 Paginator 实例。 page_obj ,当前请求页面分页对象。...object_list,请求页面的对象列表, post_list 等价。所以在模板中循环文章列表时可以选 post_list ,也可以选 object_list。...接下来我们将详细说明该如何拓展 Pagination 以实现一个完善分页效果。 总结 本章节代码位于:Step19: simple pagination。

2.1K50
领券