1、通用视图 urls.py: from django.views.generic import TemplateView path(r'about/',TemplateView.as_view(template_name...from django.views.generic import ListView class IndexView(ListView): template_name = "blog/index.html... 11、FormView:FormView一般用来展示某个表单,而不是某个模型对象。...使用FormView一般需要定义template_name, form_class和success_url. views.py - Use FormView from myapp.forms import...ContactForm from django.views.generic.edit import FormView class ContactView(FormView): template_name
request.POST的重构 request.POST重构 最近在写MHA部署的平台化操作页面,先简单说下MHA平台化的主要步骤,大概如下(以一主一从为例进行分析): 1.部署两台MySQL...django.http.QueryDict 所创建的实例。...#这是一个 django 自定义的类似字典的类,用来处理同一个键带多个值的情况。...>>> QueryDict('a=1&a=2&c=3') 具体的重构代码如下: from django.http...,必须导入QueryDict相应的包,也就是django.http包,我们首先把request.POST中的内容拿到,存到一个个变量里面,然后把这些变量拼接在字符串中,最后通过接口的方法去调用这些参数,
作者: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..., DetailView from django.shortcuts import get_object_or_404 from blog.models import Post # 获取相应模型下的全部数据...优化分页列表 最后我们列下 Paginator 常用属性结束 django 的入门教程,接下来会有 DRF 的入门教程,django 算是其基础吧,DRF 实现了前后端分离,刚好适合我这种 Android
def send_email(self): # send email using the self.cleaned_data dictionary pass 可以使用FormView...来构造其视图: #views.py from myapp.forms import ContactForm from django.views.generic.edit import FormView...class ContactView(FormView): template_name = 'contact.html' form_class = ContactForm success_url...form.send_email() return super(ContactView, self).form_valid(form) 注: FormView继承TemplateResponseMixin...Must be used with an object-based FormView (e.g.
一、指定自定义的用户模型 ① Django 自定义的 User model 满足一些最低要求: 模型必须有一个唯一的字段可被用于识别目的。可以是一个用户名、电子邮件或任何其它独特属性。..., BaseUserManager from django.db import models class UserManager(BaseUserManager): def _create_user..._create_user(telephone, username, password, **kwargs) 三、自定义用户和权限 Django 提供了 PermissionsMixin。...它提供所有 Django 权限类必须的方法和字段。...Django 允许通过修改 settings.py 文件中的 AUTH_USER_MODEL 设置覆盖默认的 User 模型,其值引用一个自定义的模型。
1.使用 django 视图类 DetailView; 2.get_object 为 DetailView 类中的方法; 3.Blog.objects.get 是 django 中封装的对数据库的操作,...在原来的基础上没有大的改动,就是 save 函数中添加了一个参数 blog views.py 在 index/views.py 文件中添加: 添加 BlogEditView 类,继承 FormView...表单还是使用的是发布文章表单 BlogPublishForm 2. get_initial 函数为 FormView 类自带函数,用来初始 form 表单的值 3. get_success_url 函数也为...FormView 类自带函数,用来返回当表单成功保存后的跳转页面链接 4. form.save 函数添加了一个参数 blog urls.py 在 index/urls.py 文件中: 添加编辑文章链接
①模板上下文处理器(context processor) 在 settings.py 中,包含了当前使用的上下文处理器。它的作用是可以给每一个 response 都提供想要添加的参数。...settings.py -> TEMPLATES -> OPTIONS -> context_processors 中使用的上下文处理器的作用: django.template.context_processors.debug...django.template.context_processors.request:增加一个 request 的变量。...django.contrib.auth.context_processors.auth:增加一个 user 的变量。...②自定义上下文处理器: 中间件 有点类似给 request 添加属性,而 上下文处理器 有点类试给 模板 添加属性。一个是向上,一个是向下。
Django源码学习-11-base.py ?...django.views.generic.base.ContextMixin 属性 extra_context 指定一些简单上下文的便捷方式 as_view()。...Title'}) 方法 get_context_data(** kwargs) 返回表示模板上下文的字典。...提供的关键字参数将构成返回的上下文。...Django中Mixin和View把原来的视图函数中的三个东西分开了,模板(TemplateResponseMixin),上下文数据(ContextMixin),负责将这些联系起来的(View)。
Django源码学习-7-View 视图函数 ?...Django的通用视图可以减少开发的单调性,它抽象出一些在视图开发中常用的代码和模式,这样就可以在无需编写大量代码的情况下,快速编写出常用的视图函数。 ?...from django.views.generic import View from django.views.generic.base import RedirectView, TemplateView...import DetailView from django.views.generic.edit import ( CreateView, DeleteView, FormView, UpdateView...MonthArchiveView', 'WeekArchiveView', 'DayArchiveView', 'TodayArchiveView', 'DateDetailView', 'DetailView', 'FormView
HTML template 一般网站中使用模板显示的页 ListView 显示对象列表 文章列表页 DetailView 显示对象详情 文章详细页 FormView 提交From 网站联系我们或emai...get_context_data(**kwargs): 返回显示对象的上下文数据,通过覆盖该方法返回额外的上下文 2.DetailView ?.... pk_url_kwarg: URLconf中,包含逐渐的关键字参数的名称.默认为'pk'. get_context_data:返回显示对象的上下文数据....self.object) context_object_name:self.object也将存储在get_context_object_name()返回的名称中,该名称默认为模型的小写名称. 3.FormView...get_context_data(**kwargs):返回显示对象的上下文数据. 4.CreateView ?
基础视图 View TemplateView RedirectView 通用的显示视图 DetailView ListView 通用的编辑视图 FormView CreateView UpdateView...generic views View TemplateView RedirectView Detail Views DetailView List Views ListView Editing views FormView...Django 的通用视图建立在基础视图之上,用于作为经常用到的功能的快捷方式,例如显示对象的详细信息。它们提炼视图开发中常见的风格和模式并将它们抽象,这样你可以快速编写常见的视图而不用重复你自己。...译者:Django 文档协作翻译小组,原文:API reference。 本文以 CC BY-NC-SA 3.0 协议发布,转载请保留作者署名和文章出处。...Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。
准备工作 新建一个Django项目 # 新建一个django项目 $ django-admin startproject mysite # 新建一个app $ django-admin startapp...', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', '...template_name属性用于指定使用哪个模板进行渲染 template_name = "blog/index.html" # context_object_name属性用于给上下文变量取名...category_list'] = Category.objects.all().order_by('name') # 调用 archive 方法,把获取的时间列表插入到 context 上下文中以便在模板中渲染...import FormView class CommentPostView(FormView): form_class = BlogCommentForm template_name
get_context_data(**kwargs): 返回显示对象的上下文数据,通过覆盖该方法返回额外的上下文 2.DetailView ?.... pk_url_kwarg: URLconf中,包含逐渐的关键字参数的名称.默认为'pk'. get_context_data:返回显示对象的上下文数据....self.object) context_object_name:self.object也将存储在get_context_object_name()返回的名称中,该名称默认为模型的小写名称. 3.FormView...', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions',...这是Django提供的CSRF防护机制。
BlogPublishView 类继承的是 FormView ; 使用的 Form 表单为 BlogPublishForm;模版为 blog_publish.html Form 表单 在 index/...django 中的 form 表单 html 中的 form 表单,各大网站上的登录页面中的登录框或页面上的评论/留言框就是一个 form 表单。
(1)中间件就是一个可调用的对象,接受一个request并返回一个请求 (2)一个中间件可以是一个函数,参数必须要是get_response 一次性设置和初始化 每一个请求都会调用 django...自动调用视图 (3)中间件也可以写成一个类,并且他的实例可以被调用 【中间件激活】 在settings里面的MIDDLEWARE里面导入中间件 如果没有MIDDLEWARE就自己定义一个(有些django...版本的settings里面是MIDDLEWARE_CLASSES) 视图从上向下,响应从下向上 上下文处理器>>> 所有的模板上都需要一个特定的变量是,上下文管理器就能处理好 (1)在app...目录下 customer_context_processors.py (2)上下文处理器就是一个函数,函数必须传入request作为参数并返回一个字典 【激活】 在settings的TEMPLATES...里面的context_processor ***django-admin自动生成功能齐全的后台*** (1)使用之前要做数据库迁移 migration migrate (2)第一个用户需要用命令行
启用消息 消息是通过中间件类和相应的上下文处理器实现的。...messages上下文处理器。...否则,确保消息对模板上下文可用。 即使您知道只有一条消息,您仍然应该遍历消息序列,否则消息存储将不会为下一个请求清除。...上下文处理器还提供了DEFAULT_MESSAGE_LEVELS变量,该变量是消息级别名称与其数值的映射: {% if messages %} {%...在基于类的视图中添加消息 class views.SuccessMessageMixin success_message属性 向基于FormView的类添加一个success消息属性 get_success_message
UploadedFile对象是对Python file对象的一个简单封装,并带有Django特定的附加功能。需要表示文件的时候,Django内部会使用这个类。...实现文件上传并且保存到指定路径下,其实并不困难,可以不需要用到django的forms,也不需要django的models,就可以简单实现上传功能。...file_field = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True})) 然后,自己编写一个FormView...的子类,并覆盖它的post方法,来处理多个文件上传: # views.py from django.views.generic.edit import FormView from .forms import...FileFieldForm class FileFieldView(FormView): form_class = FileFieldForm template_name = 'upload.html
题图:by natgeo from Instagram 本文是自己 Django 学习笔记系列中第 8 篇,算是基础知识篇章中最后一篇笔记。后续的笔记内容会相对比较综合。...q=monkey 3 Django Form 3.1 功能 Django 的表单针对 HTML 表单实现了一层封装,这使得 Django 的 Form 表单功能更加强大。...from django.http import HttpResponseRedirect from django.shortcuts import render # Create your views...here. from demo_form.form.forms import AuthorFormOne def formView(request): # 过滤 POST 方法的请求.../', admin.site.urls), path('forms/', views.formView), ] 所以使用浏览器访问 http://127.0.0.1:8000/forms/, 你会发现页面会自动渲染出表单的信息
基于类的通用视图(GV) Django 引入了基于类的通用视图, 来处理 web 常见的用例需求, 比如创建新对象,表单处理,列表视图,分页,归档视图等....你可以在django.views.generic引用它们....你可以直接使用它们来加快开发的过程,以下是可用视图的概述: 基础视图 View (最基本的View) TemplateView RedirectView 通用展示视图 ListView DetailView 通用编辑视图 FormView...各种观点 #1 观点 「使用所有的通用视图(GV)」 此观点认为,Django 提供这些通用视图就是让减少开发的效率, 为什么不用呢?...#2 观点 「仅使用django.views.generic.View, 不用GV」 此观点认为, View 就足够了, 并且 View 是真正的CBV, 而通用视图则不是真正的 CBV.
---- 1.django简介 Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。...这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。 Django是一个基于MVC构造的框架。...但是在Django中,控制器接受用户输入的部分由框架自行处理,所以Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为MTV模式。...Django适合快速开发web开发。...的视图 Django有很多的优秀的视图: View DetailView ListView FormView CreateView DeleteView UpdateView 我们的blog里面暂时只用到了
领取专属 10元无门槛券
手把手带您无忧上云