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

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

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

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

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

上面的try ... except就是用来检查KeyError,如果没有给出choice将重新显示Question表单错误信息; 将Choice得票数加1之后,返回一个HttpResponseRedirect...这个函数可以避免视图函数中硬编码URL。它需要我们给出想要跳转视图名字该视图所对应URL模式中需要给该视图提供参数。...reverse from django.views import generic from .models import Choice, Question class IndexView(generic.ListView...这里使用两个通用视图:ListViewDetailView。这两个视图分别代表“显示对象列表”显示特定类型对象详细信息页面”抽象概念。 每个通用视图需要知道它将作用于哪个模型。...而对于DetailView,question变量会被自动提供,因为我们使用了Django模型(Question),Django会智能选择合适上下文变量。

2.3K40

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

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

1.4K10

Django学习笔记 1.4 表单通用视图

文章目录 前言 1 编写一个简单表单 1.1 模版中新增表单 1.2 视图中新增交互处理 1.3 重定向 results 页面增加显示 1.4 完善 results.html 页面代码 2 通用视图...return HttpResponseRedirect(reverse('polls:results', args=(question.id,))) 1.3 重定向 results 页面增加显示 还是视图中处理... 2 通用视图 投票应用中 detail results 视图操作都差不多,显得冗余。...让我们将我们投票应用转换成使用通用视图系统,仅仅需要做以下几步来完成转换: 1.转换 URLconf。 2.删除一些旧、不再需要视图。 3.基于 Django 通用视图引入新视图。...(generic.ListView): template_name = 'polls/index.html' context_object_name = 'latest_question_list

78010

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

编写你第一个 Django 程序 第4部分 本教程上接 教程 第3部分 。我们将 继续开发 Web-poll 应用并且关注处理简单窗体优化我们代码。...想了解 HttpRequest 对象更多内容,请参阅 request response 文档 。 当有人投票后,vote() 视图会重定向到投票结果。...P\d+)/vote/$', 'polls.views.vote', name='vote'), ) 修改 views 在这我们将使用两个通用视图: ListView DetailView...这两个视图分别用于显示两种抽象概念 “显示一系列对象列表” 显示一个特定类型对象详细信息”。 每个视图都需要知道使用哪个模型数据。因此需要提供将要使用 model 参数。... DetailView 中 poll 变量是自动提供 – 因为我们使用了一个 Django 模型 (Poll) ,Django 能够为上下文变量确定适合名称。

1.4K10

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

, DetailView from django.shortcuts import get_object_or_404 from blog.models import Post # 获取相应模型下全部数据...详情界面 有时候如果我们数据过多,同一加载全部数据,用户体验肯定不好,我们通过通用视图类来创建分页,这边为了方便显示,我们会设置每页加载一篇文章 3 通过 ListView 创建分页 1.指定...带分页列表 目前分页效果看上去并不那么美观,实际项目中,我们优化了分页显示,具体代码就不贴了(我怕代码太多你们会打我),可以下载项目查看,这边我们可以看下效果图 ?...优化分页列表 最后我们下 Paginator 常用属性结束 django 入门教程,接下来会有 DRF 入门教程,django 算是其基础吧,DRF 实现了前后端分离,刚好适合我这种 Android...当前第一个 item 列表中位置 3 print(page2.end_index()) # 当前最后一个 item 列表中位置 4 最后附上整个项目的地址:blog_project

87320

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

Django尝试从model template层移除一些单调情况,但是Web开发者依然会在view(视图)层经历这种厌烦。 Django通用视图被开发用来消除这一痛苦。...这是通用视图1.3发布中被重新设计原因之一 - 之前,它们仅仅是一些函数视图加上 一令人疑惑选项;现在,比起传递大量配置到URLconf中,更推荐扩展通用视图 方法是子类化它们,并且重写它们属性或者方法...当你处理 一个object或者queryset时,Django能够使用你定义对象显示自述名(verbose name,或者复数自述名,对于对象列表)来填充上下文(context)。...一个通用视图上context_object_name属性指定了要使用定了上下文变量: # views.py from django.views.generic import ListView from...首先,我们需要添加作者详情代码配置到URLconf中,指向自定义视图: from django.conf.urls import url from books.views import AuthorDetailView

1.4K40

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 通用视图建立基础视图之上,用于作为经常用到功能快捷方式,例如显示对象详细信息。...它们提炼视图开发中常见风格模式并将它们抽象,这样你可以快速编写常见视图而不用重复你自己。

83820

基于 Django 个人网站(4)

上回说到,虽然已经基本上把显示格式改差不多了,但是界面还是不够美观,同时也没有实现分类页面检索文章页面,今天我们先来实现分类页面检索文章页面。 ?...分类页面的实现 考虑到分类页面是一个用来展示属于当前类别的所有文章,首页一样格式,就是显示表项十有八九会比首页少,因此分类页面的视图直接继承首页视图,然后重写 get_queryset 方法就完事了...,接下来我就给出视图、模板 URL 完整代码,首先是视图 personal_website\views.py,代码如下: from django.db.models import Q from django.views.generic...import DetailView, ListView from.models import Article, Category # Create your views here. class IndexView...看到 URL 最后是 5 就说明没有问题,同时也可以去管理后台看显示这两篇文章是不是有类别5 这个分类。

1.1K20

基于django视频点播网站开发-step4-首页功能

本讲中,我们开始首页功能开发,开发过程中,大家将会学习到Django通用视图类、分页对象paginator以及foreignKey外键使用。 效果演示 [16851ab0d057a5d6?...显示列表数据非常简单,我们使用django中内置视图模版类ListView显示,首先在view.py中编写IndexView类,用它来显示列表数据。...这里我们使用到了django内置标签,比如for语句、empty语句。这些都是django中非常常用语句。之后教程中我们会经常遇到。...显示结果如下 [首页展示] 分类功能 写分类功能之前,我们先学习一个回调函数 get_context_data() 这是ListView视图类中一个函数, get_context_data() 函数中...,可参考 这里 分页功能 Django中,有现成分页解决方案,我们开发者省了不少事情。

1.3K41

Django分页功能改造,一比一还原百度搜索分页效果

首先我们需要定义几个概念: 总页码数,比如总共有30 当前页码数,比如当前是第3 显示页码列表,也可以说是列表长度,比如显示1-10或者3-12,都是显示10个长度 我们分析一下百度分页不同场景对应处理...,则从要把当前放到中间 当前接近末时候,重新调整开始策略,保证显示长度依然是固定 经过分页,忽略页面效果前提下,我们要实现一个分页效果最关键点就是得到一个要显示页码列表。...Django设计分页 Django里面可以定义一个标签函数来做分页,这个标签函数主要目的就是输出要显示页码列表,然后定义一个分页模板来渲染html页面即可。...定义标签函数 只要是视图继承generic.ListView,我定义这个分页标签函数都是可以直接使用,如果是自己定义分页器,只需要修改标签函数参数,拿到分页总数当前页码也可以通用。..._replace(query=updated_query_string)) return updated_url 使用分页模板 在任何有分页对象页面(也就是视图继承自generic.ListView

32120

基于 Django 个人网站(2)

上回说到,因为文章内容数据类型是文本字段,文本字段只能输入字符,图片就不行了,当时我给出了两种方案——markdown 富文本编辑器,我决定选择富文本编辑器,因为 Django 富文本编辑器插件有很多...django-ckeditor 使用 使用 django-ckeditor 非常简单,因为我这里安装django-ckeditor-5, django-ckeditor 差不多,但是也还是有一些区别的...,修改 IndexView paginate_by 值,每一显示内容变少自然就会分页了,我把这个值直接改成了 1,一显示一条数据,下面来看一下效果,如图所示。...render from django.views.generic import DetailView, ListView from.models import Article # Create your...显示的确实是正常,就是代码没有高亮显示,往下滑还会发现图片表格没有居中显示,基本上算是正常了,就差样式了,至于如何修改样式我们明天再说。

2.2K20

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

采用了MVC框架模式,即模型M,视图V控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下一些以新闻内容为主网站,即是CMS(内容管理系统)软件。并于2005年7月BSD许可证下发布。...但是Django中,控制器接受用户输入部分由框架自行处理,所以Django 里更关注是模型(Model)、模板(Template)视图(Views),称为MTV模式。...ORM,即Object-Relational Mapping(对象关系映射),它作用是关系型数据库业务实体对象之间作一个映射,这样,我们具体操作业务对象时候,就不需要再去复杂SQL语句打交道...视图 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
领券