上节,我们使用函数视图,用了@api_view装饰器来修饰,这一节,我们介绍类视图APIView,显然,类视图更符合面向对象的原则. 1.使用类视图APIView重写API 类视图APIView,取代@api_view装饰器,代码如下: from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView from snippe…
1 绪言 当大家看大这篇博文的时候,应该对Django rest_framework中的CBV有所了解了,大致来说就是通过定义类来继承APIView类,并在类中定义get.post.put.delete等对应于请求方法的方法,当请求来的时候会自动反射到相应的方法并执行,路由中需要配置类的as_view()的方式来配置路由,至于如何拿到请求方法并对应执行我们自定义类中的方法,在我的rest_framework系列的第一篇博文中有详细的分析,这里不再多说.这一篇博文我们来研究一下视图类. 2 视图进…
这一节,我们介绍rest_framework的Requests和Responses对象,来替代django.http的HttpRequest和HttpResponse对象 1.Requests和Responses对象的特点 1)Request对象 request.data #处理任意数据,接收'POST','PUT'和'PATCH'方法. 2)Response对象 HttpResponse只能返回string,而Response可以对任意类型自动处理,更加方便. 3)状态码 rest_frame…
1.rest_framework的作用 1)可以对orm和非orm资源序列化 2)支持restful风格编程(POST,PUT,PATCH) 3)使用类视图编写API的view,而不是函数视图,类视图更符合代码的设计模式. 4)用户认证和权限控制 2.使用示例 功能如下:管理员查看,编辑用户,组信息 1)新建名为tutorial的Project,创建一个名为quickstart的APP 创建表,创建超级管理员 django-admin startproject tutorial cd tutor…
类视图 在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图.使用类视图可以使用类的一些特性,比如继承等. View django.views.generic.base.View是主要的类视图,所有的类视图都是继承自他.如果我们写自己的类视图,也可以继承自他.然后再根据当前请求的method,来实现不同的方法.比如这个视图只能使用get的方式来请求,那么就可以在这个类中定义get(self,request,*args,**kwargs)方法.以此类推,如果只需要实现post方法…
说明:在练习天天生鲜项目时,对利用类视图去与正则匹配到的url做映射有点疑惑,经过查看他人博客以及自我分析算是整明白了,所以记录一下 参考:https://www.zmrenwu.com/post/53/ 这里以天天生鲜用户注册模块为例(此处涉及的HTTP请求方法为POST,GET).当在浏览器中输入url地址时(如http://127.0.0.1:8000/userr/register) 会进行正则匹配,并映射到ActiveView.as_view(),其最终达到将注册页面显示出来的效果,原因…
1.django User实体 django自带了用户验证模块,django/contrib/auth/models.py定义了用户实体,代码如下: class AbstractUser(AbstractBaseUser, PermissionsMixin): username = '' first_name = '' last_name = '' email = '' password = '' ... 2.django中获取验证用户 def get(self, request): user…
在前一节中,我们已经粗略地介绍了rest_framework的作用之一序列化,下面我们将详细探究序列化的使用. 1.新建一个app snippets python manage.py startapp snippets 更新配置文件tutorial/settings.py,注册到APPS INSTALLED_APPS = ( ... 'rest_framework', 'snippets.apps.SnippetsConfig', ) 2.创建Model,定义实体 编辑snippets/mode…
说明: 本文主要深入了解视图(views.py),涉及路由配置.定义视图.Request对象.Response对象.状态保持等. 一.路由配置 1.配置位置(settings.py 的 ROOT_URLCONF) 在settings.py中的ROOT_URLCONF指向的urls.py则是主要的路由配置文件. 2.修改主路由文件(test2.urls) from django.conf.urls import url, include from django.contrib import adm…
之前学习了模型序列化和普通序列化,我们用最简单的视图和url实现了对序列化的操作. 而实际上,象之前那种由DRF自动生成所有的视图和url的情况,在应用是使用很少.而需要用户根据实际业务需求,自定义视图和url. DRF提供了丰富的视图类,可以满足程序员的各种需求,基本上一个需求可以用多种视图来满足. 1 导入包 找到Applications/Exampls/views下的Schools.py文件,先导入以下包: from rest_framework.views import APIView…