Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...from django.views.generic import View 这个类是通用类的基类,其它类都是继承自这个类。 ?...Django把基本的http请求和响应抽象出来,封装成各自的类,在使用过程中只需把各个基类聚合到一起使用,可以按照要求重写自己需要的方法,那么就把这些基类称为Mixin。...(模板响应类) FormMixin(表单类) YearMixin, MonthMixin, DayMixin, WeekMixin, DateMixin(几个基于时间关系的类) ?...比如DetailView这个类就组合了SingleObjectTemplateResponseMixin和BaseDetailView。 ?
基础视图 View TemplateView RedirectView 通用的显示视图 DetailView ListView 通用的编辑视图 FormView CreateView UpdateView...它们不能满足项目中所有的需求,在这种情况下有Mixin 可以扩展基础视图的功能。 Django 的通用视图建立在基础视图之上,用于作为经常用到的功能的快捷方式,例如显示对象的详细信息。...它们提炼视图开发中常见的风格和模式并将它们抽象,这样你可以快速编写常见的视图而不用重复你自己。...大部分通常视图需要queryset 键 ,它是一个查询集 实例;关于查询集对象的更多信息,请参见执行查询。 译者:Django 文档协作翻译小组,原文:API reference。...Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。
detailFilter 属性:data-detail-filter Type:Function Default:function(index,row){ return true} detailView
在开发网站的过程中,有一些视图函数虽然处理的对象不同,但是其大致的代码逻辑是一样的。比如一个博客和一个论坛,通常其首页都是展示一系列的文章列表或者帖子列表。...在 Django 中 URL 模式的配置方式就是通过 url 函数将 URL 和视图函数绑定。...DetailView 除了从数据库中获取模型列表的数据外,从数据库获取模型的一条记录数据也是常见的需求。比如查看某篇文章的详情,就是从数据库中获取这篇文章的记录然后渲染模板。...对于这种类型的需求,Django 提供了一个 DetailView 类视图。..., DetailView # 记得在顶部导入 DetailView class PostDetailView(DetailView): # 这些属性的含义和 ListView 是一样的
1.使用 django 视图类 DetailView; 2.get_object 为 DetailView 类中的方法; 3.Blog.objects.get 是 django 中封装的对数据库的操作,...命名空间名称 app_name = " " 参数说明: 正则表达式:一个正则表达式字符串 views视图函数:一个可调用对象, 通常为一个视图函数或一个指定视图函数路径的字符串 参数:可选的要传递给视图函数的默认参数...(字典形式) 别名:一个可选的name参数 在 blog/templates/ 目录下修改 blog_index.html 文件: ?...在原来的基础上没有大的改动,就是 save 函数中添加了一个参数 blog views.py 在 index/views.py 文件中添加: 添加 BlogEditView 类,继承 FormView...表单还是使用的是发布文章表单 BlogPublishForm 2. get_initial 函数为 FormView 类自带函数,用来初始 form 表单的值 3. get_success_url 函数也为
#GET显示表单时,如果要显示初始值,请用initial参数 self.initial = initial or {} #模板中显示{{form}}时,默认是以...3、通用视图 django.views.generic.ListView和django.views.generic.edit下的CreateView, UpdateView, DeleteView都是通用视图...FormMixin允许处理表单,可指定form_class为某个表单。...{{ contractAddressForm }} {{ projectAddressForm }} {{ projectForm }} #这是FormMixin父类帮我们生成的 {{ ...由于python和django过于灵活,都将要求django的开发者们唯有更资深才能写出生产环境下的服务。
Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...本次登录采用 django 自带 form 表单验证。登录需要验证的字段有手机号和密码。...import forms from apps.forms import FormMixin class LoginForm(forms.Form, FormMixin): telephone...Django 的视图(View)通常和 URL 路由一起工作的。...基于类的视图(View) from django.views.generic import View from django.contrib.auth import authenticate, login
最近项目中遇到一个需求,在Django的model中主键要带有前缀的递增类型主键,比如:exp-1, exp-2…,类似.这样,而且在所有的model中,主键里面递增的数据要唯一,不能有重复。...也就是如果有A和B两个model,那么当exp-1在A中使用过之后就不允许在B中再使用。在网上找了一圈没有找到特别好的实现方法,自己写了一个,在这里做个记录。...我采用的方法其实也很简单: 创建一个单独的model,里面只有一个models.AutoField类型的字段,可以确保主键中递增的数字是全局唯一的 在实际业务model中定义一个models.CharFiled...类型的主键 修改save方法,为业务模型的主键加上前缀 下面是示例代码,可以参考 from django.db import models class AutoIncrementFields(models.Model
Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...Django的通用视图可以减少开发的单调性,它抽象出一些在视图开发中常用的代码和模式,这样就可以在无需编写大量代码的情况下,快速编写出常用的视图函数。 ?...import DetailView from django.views.generic.edit import ( CreateView, DeleteView, FormView, UpdateView...② DetailView:显示一个对象的某个属性详细信息 用于显示某一 Model 中的一个 object 的详细信息。...object; from django.views.generic import DetailView from books.models import Author # 当该页面被访问时,对 Model
Django尝试从model和 template层移除一些单调的情况,但是Web开发者依然会在view(视图)层经历这种厌烦。 Django的通用视图被开发用来消除这一痛苦。...此外,有问题的模型可以作为一个额外的参数传递到URLconf中。 Django通过通用视图来完成下面一些功能: 为单一的对象展示列表和一个详细页面。...因为这是如此常见 的任务,Django提供了一大把内置的通用视图,使生成对象的展示列表和详细视图 的变得极其容易。 让我们来看一下这些通用视图中的”对象列表”视图。...这里,我们拥有一个带有一组供捕获的参数的URLconf: # urls.py from django.conf.urls import url from books.views import PublisherBookList...– 因此我们简单的 重写它并封装调用: from django.views.generic import DetailView from django.utils import timezone from
本篇笔记继续跟着django官方文档创建了一个投票的应用。 它由两部分组成: 一个让人们查看和投票的公共站点。 一个让你能添加、修改和删除投票的管理站点。 ...- Create model Choice django为我们生成了一个0001_initial.py,他是一个中间文件,执行迁移数据库的命令后,django会依赖这个文件去帮我们创建数据库表...from django.shortcuts import get_object_or_404, render # 引入我们写的数据表 from .models import * # 写了一个和后端交互的视图...删除旧的 index, detail, 和 results 视图,并用 Django 的通用视图代替。...return Question.objects.order_by('-pub_date')[:5] class DetailView(generic.DetailView): model =
后面会详细讲解Django每一部分的使用方式和API了 本节内容 内置视图处理对象的定义 内置视图处理对象的使用 源代码分析 1....常规情况下,对应页面中要展示数据列表的视图,通过继承Django的django.views.generic.ListView对象来实现,页面中要展示数据信息的视图,通过继承Django的django.views.generic.DetailView...question_list,那么后面的DetailView和ResultView中的数据是怎么来的呢?...DetailView和ResultView中的要查询的数据,同样也是通过主键编号进行查询的,默认的变量名称是pk,所以在路由中要进行如下的修改配置,才可以正常使用 改造polls/urls.py路由模块...源码分析 此时,会有个问题困扰着我们,为什么要继承视图处理类,为什么要继承不同的处理类ListView和DetailView?
模拟分布式存储和计算环境的一种简单方法是将Virtualbox作为VM(“虚拟机”)的提供者,将Vagrant作为配置,启动和停止这些VM的前端脚本引擎。...出于我们的目的,我们更喜欢具有以下标准的“仅限主机”,“私人”网络。 guest和host应该能够互相交谈。我们希望客户组成一个集群并一起工作以启用服务。主机应该能够控制和使用客户群提供的服务。...主机是服务的使用者,它可以将其转换为它自己的服务,如果它愿意,它可以提供给外部。 最后,为了便于使用和移植,每个访客在创建时应具有IP地址和名称“已分配”。...我想要一种各种各样的交钥匙解决方案,其中我可以预先编写VM群集创建的所有方面,并且只需运行它就可以在安装,启动和饲养所有工具的情况下创建该群集。...这为我们提供了第2节中我们想要的网络模型。 #19行,即将供应的工具和应用程序的虚拟机。非常强大和方便。我们可以使用我们希望客户负责的应用程序自动化启动集群中每个成员的过程。
开发环境 django 1.11 DetailView 的相关源码 # .....\Lib\site-packages\django\views\generic\dates.py class DateDetailView(SingleObjectTemplateResponseMixin...\Lib\site-packages\django\views\generic\detail.py class SingleObjectMixin(ContextMixin): """...pk='pk') 重写 generic.DetailView 里面的 get_object class DetailView(generic.DetailView): model = Article...obj, CACHE_TIMEOUT_2D) # 设置该主键的缓存 return obj
中间件,处理request和response对象的钩子,中间件的作用主要使处理用户请求信息,也可以自定义中间件,添加到配置属性即可。...编写URL(统一资源定位符)规则 在每个app文件夹中设置独立的静态资源和模板文件夹并添加一个urls.py文件 根目录下urls.py from django.contrib import admin...): return HttpResponse('Hello World') 带变量的URL 例如带有日期的url url的变量类型又字符类型,整型,slug, uuid,最常用的使字符类型和整型...ListView: 将数据库数据传递给HTML模板,通常获取某个表的所有数据 DetailView: 通常获取数据表的单条数据 深入模板 Django模板,Jinja2模板语言(http://docs.jinkan.org...变量和标签 initial-scale
编写你的第一个 Django 程序 第4部分 本教程上接 教程 第3部分 。我们将 继续开发 Web-poll 应用并且关注在处理简单的窗体和优化我们的代码。...P\d+)/vote/$', 'polls.views.vote', name='vote'), ) 修改 views 在这我们将使用两个通用视图: ListView 和 DetailView...我们也指定了 results 列表视图的 template_name – 这确保了 results 视图和 detail 视图渲染时会有不同的外观,虽然它们有一个 DetailView 隐藏在幕后。...在 DetailView 中 poll 变量是自动提供的 – 因为我们使用了一个 Django 模型 (Poll) ,Django 能够为上下文变量确定适合的名称。...当你熟悉了窗体和通用视图后,请阅读 教程 第5部分 来学习测试我们的投票应用。 译者:Django 文档协作翻译小组,原文:Part 4: Forms and generic views。
2 通用视图 投票应用中的 detail 和 results 视图的操作都差不多,显得冗余。...由于这种情况特别常见,Django 提供一种快捷方式,叫做“通用视图”系统。 通用视图将常见的模式抽象化,可以使你在编写应用时甚至不需要编写Python代码。...让我们将我们的投票应用转换成使用通用视图系统,仅仅需要做以下几步来完成转换: 1.转换 URLconf。 2.删除一些旧的、不再需要的视图。 3.基于 Django 的通用视图引入新的视图。...return Question.objects.order_by('-pub_date')[:5] class DetailView(generic.DetailView): model =...小结 这节终于用上了通用视图,再一次感受到了Django框架,把冗余的东西都做了简化抽象。 定义了通用视图,传递给它指定模版,以及模型,一切就OK了。它比 render 快捷函数更加简洁。 ----
继上篇 django2.0入门教程第三节,介绍了django2.0的视图views和模板template, 本节介绍如何在前台进行投票。...result.png 优化url和view写法 另一种写法: 将主键id代替question_id polls/urls.py #_*_coding:utf8_*_ from django.urls...,vote方法保持原样,用于比较两种写法的不同 polls/views.py #_*_coding:utf8_*_ from django.shortcuts import render, get_object_or..._404 from django.http import HttpResponseRedirect from django.urls import reverse from django.views import...入门教程不会对代码进入深入的讲解,先大致了解其作用即可,后续再逐个模块进行解析 源码下载 相关源码包 如果对django2.0教程感兴趣,请关注我的简书,持续更新中...
python内置组件,或Django组件命名项目,特别是django(和Django自身冲突)或test(和python内置模块冲突)。...可看到groups和users,这是由django.contrib.auth提供的,django的认证框架。 使得poll应用在站点管理页中可修改 如上,没看到poll应用。...这里使用了两种视图:ListView和DetailView。这两种对象分别抽象了list对象的展示和特定读写的详细页面展示。 每种通用视图使用model属性来区分需要作用的模块。...DetailView视图期望从ULR捕获的主键值被称为pk,所以把question_id改成了pk 默认的DetailView视图使用名为/_detail.html...模板包含很多类似{% block branding %} and {{ title }}的文本,{%和{{标签是Django的模板语言。
变成 改进视图 下面将删除旧的index、detail和 results 视图,并用Django的通用视图代替: # polls/views.py from django.shortcuts...这里使用两个通用视图:ListView和DetailView。这两个视图分别代表“显示对象列表”和“显示特定类型对象的详细信息页面”的抽象概念。 每个通用视图需要知道它将作用于哪个模型。...而对于DetailView,question变量会被自动提供,因为我们使用了Django的模型(Question),Django会智能的选择合适的上下文变量。...快速通道 Django 1.10中文文档-第一个应用Part1-请求与响应 Django 1.10中文文档-第一个应用Part2-模型和管理站点 Django 1.10中文文档-第一个应用...Part3-视图和模板 Django 1.10中文文档-第一个应用Part4-表单和通用视图
领取专属 10元无门槛券
手把手带您无忧上云