1.DRF框架给我们封装好了好多层模块的 来实现简便接口的编写 # from rest_framework.mixins import CreateModelMixin, UpdateModelMixin, RetrieveModelMixin, ListModelMixin, \ # DestroyModelMixin # from rest_framework.generics import GenericAPIView # #这里是加载drf框架的mixins 模块的功能 #ListMod…
基于mixins视图类 from rest_framework import mixins # 创建视图 class CreateModelMixin(object) def create(self, request, *args, **kwargs): # 查看所有视图 class ListModelMixin(object) def list(self, request, *args, **kwargs): # 查看单个视图 class RetrieveModelMixin(object)…
前后端分离的项目 >: pip3 install djangorestframework   一.视图类传递参数给序列化类 视图层:views.py 需求: (1)在视图类中实列化对象是,可以设置context的传递内容 (2)也就是在哪里可以得到或者这个context的局部钩子,全局钩子,create. update 方法中, 都可以用 self.,context 访问视图 类传递过来的内容 如:我们在视图类中可以通过request得到登录用户reqest.user (2)再续列化中,要完成数…
0909自我总结 drf框架中所有视图及用法 一.drf框架中的所有视图类 from django.views import View from rest_framework import views, generics, mixins, viewsets 最基础:django自带的views类 drf框架中最基础的视图类:views.APIView drf框架中工具视图:generics GenericAPIView:该视图类中的基类 mixins视图工具集: RetrieveModelMix…
laravel框架中视图间共享数据有两种,一种是用视图门面share()方法实现,另一种是用视图门面composer() 方法实现,那么,两种方法的实现究竟是怎样的呢?让我们来看一看接下来的文章内容. 首先,需要注意的一点是:都是使用 View 门面来访问 Illuminate\Contracts\View\Factory 的底层实现 视图门面share()方法 有时需要在所有视图之间共享数据片段,这时候可以使用视图门面的 share 方法. 1,一般情况下,我会在app\http\Contro…
本文实例讲述了Laravel5.4框架中视图共享数据的方法.分享给大家供大家参考,具体如下: 每个人都会遇到这种情况:某些数据还在每个页面进行使用,比如用户信息,或者菜单数据,最基本的做法是在每个视图空控制器中传入这些数据,但显然并不是我们想要的结果.另一种方法就是使用视图数据共享,视图数据共享的基本使用很简单,可查看视图文档了解详情,这里我们演示两个使用示例:在视图间共享数据和视图Composer 在视图中共享数据 除了在单个视图中传递指定数据之外,有时候需要在所有视图中传入同一数据,即我们需…
DRF框架中链表数据通过ModelSerializer深度查询方法汇总 一.准备测试和理解准备 创建类 class Test1(models.Model): id = models.IntegerField(primary_key=True) test_2_id= models.ForeignKey(to='Test2',on_delete='id') #这里有的创建失败了哈哈忘了会自动补全id class Test2(models.Model): id = models.IntegerFiel…
复习 1.整体修改与局部修改 # 序列化get (给前端传递参数) #查询 ser_obj = ModelSerializer(model_obj) #只传递一个参数,默认是instance的参数,查询数据 # 反序列化post save() => create()(数据保存到数据库中) #添加 ser_obj = ModelSerializer(data=model_data) #传递data参数,保存数据 #反序列化put save() => update() #修改(需要传入instan…
一.restful规范 ''' 它是一个规范,面向资源架构 十条规范 1.API与用户的通讯协议,总是使用HTTPs协议,确保了网络传输的安全性 2.域名 --https://api.example.com :尽量将API部署在专用域名(会存在跨域问题) --https://example.org/api/ :这个写法简单,推荐使用 3.版本 --https://api.example.com/v1/ 把版本号放在请求头中 4.路径 在网络上任何东西都是资源,均使用名词表示(可复数) --127…
1. 什么是序列化,其实在python中我们就学了序列化工具json工具,就是吧信息存为类字典形式 2. DRF框架自带序列化的工具: serializers 3. DRF框架 serializers 分为:第一种 Serializer   第二种 ModelSerializer 第一种用法之 Serializer from django.db import models # Create your models here. class Book(models.Model): nid = mod…
写写Django中DRF框架概述以及序列化器对象serializer的构造方法以及使用 一.了解什么是DRF DRF: Django REST framework Django REST framework 框架是一个用于构建Web API 的强大而又灵活的工具. 通常简称为DRF框架 或 REST framework. DRF框架是建立在Django框架基础之上,由Tom Christie大牛二次开发的开源项目. 二.DRF的特点 提供了定义序列化器Serializer的方法, 可以快速根据…
登录注册是几乎所有网站都需要去做的接口,而说到登录,自然也就涉及到验证以及用户登录状态保存,最近用DRF在做的一个关于网上商城的项目中,引入了一个拓展DRF JWT,专门用于做验证和用户状态保存.这个拓展比传统的CSRF更加安全.先来介绍一下JWT认证机制吧! Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景.JWT的声明一般被用来在身…
一. drf简介 drf框架,全程: django-rest framework  ,   rest是插件名字,django插件的名字叫rest,framework是框架的意思 二. 接口 在平时生活中,接口是联系两个物质的媒介, 完成信息的交互. 在web程序中是联系前台页面与后台数据库的媒介 web接口组成: url: 长得像返回数据(api.baidu.map/search)的url链接,长得像还不一定就是接口,还要有请求参数,接口一定要告诉前台要给我传什么参数,比如登录接口要传用户名和密…
drf框架接口文档 REST framework可以自动帮助我们生成接口文档. 接口文档以网页的方式呈现. 自动接口文档能生成的是继承自APIView及其子类的视图. 一.安装依赖 pip install coreapi 二.设置接口文档访问路径 在总路由中添加接口文档路径. 文档路由对应的视图配置为rest_framework.documentation.include_docs_urls, 参数title为接口文档网站的标题. from rest_framework.documentatio…
0903自我总结 drf框架序列化和反序列化 from rest_framework import serializers 一.自己对于序列化和反序列化使用的分类 前后端交互主要有get,post,puch,put,deleter 其中用到序列化的get 用到反序列化的剩下四中 二.序列化的使用 1.首先我们要根据我们定义的模型一一对应定义一个继承serializers.Serializer的类 class UserSerializer(serializers.Serializer): user…
0905自我总结 drf框架serializers中ModelSerializer类 基于seriallizer类进行简化 https://www.cnblogs.com/pythonywy/p/11455508.html 一.简单的使用 导入from rest_framework import serializers 与基础serializer类后续使用的作用相似 class 自定义名称(serializers.ModelSerializer): class Meta: model=对应的模型…
0909自我总结 drf框架中jwt 一.模块的安装 官方:http://getblimp.github.io/django-rest-framework-jwt/ 他是个第三方的开源项目 安装:pip install djangorestframework-jwt 使用自带设定好的jwt from django.urls import path from rest_framework_jwt.views import obtain_jwt_token urlpatterns = [ path(…
1,DRF框架? Django REST framework 框架是一个用于构建Web API 的强大而又灵活的工具.通常简称为DRF框架 或 REST framework. Django REST framework 可以帮助我们大大提高REST API  的开发速度,目的就是简化代码 2,序列化和反序列化 序列化:将程序中的一个数据结构类型转换为其他格式(字典.JSON.XML等),例 如 Django中的模型类对象转换为字典或JSON字符串,这个转换过程我们称为序列化. 反序列化:将其他格…
目录 drf框架 导入 什么是接口 restful接口规范 原生Django实现接口 drf框架 Django CBV 和drf CBV对比 响应渲染模块 请求数据解析模块 响应模块 二次封装Response drf框架 导入 http协议 http协议是基于应用层的协议 在发出请求时,需要具备请求首行,请求头,请求体 特点:无状态无连接,且都是客户端先发起请求,服务端再进行响应 wsgi协议 主要就是规定了数据的解析方式,把get之类的http请求解析封装到request里面 在视图函数返回的…
DRF框架    全称:django-rest framework 知识点 1.接口:什么是接口.restful接口规范 2.CBV生命周期源码 - 基于restful规范下的CBV接口 3.请求组件.解析组件.响应组件 4.序列化组件(灵魂) 5.三大认证(重中之重):认证.权限(权限六表).频率 6.其他组件:过滤.筛选.排序.分页.路由 接口 接口:联系两个物质的媒介,完成信息交互 web程序中:联系前台页面与后台数据库的媒介 web接口组成: url:长得像返回数据的url链接 请求参数…
解析模块 为什么要配置解析模块 1)drf给我们提供了多种解析数据包方式的解析类 form-data/urlencoded/json 2)我们可以通过配置来控制前台提交的哪些格式的数据后台在解析,哪些数据不解析 3)全局配置就是针对每一个视图类,局部配置就是针对指定的视图来,让它们可以按照配置规则选择性解析数据 源码入口 # APIView类的dispatch方法中 request = self.initialize_request(request, *args, **kwargs) # 点进去…
drf框架 """接口: 接口规范: drf的生命周期: 序列化组件: 三大认证:过滤,删选,排序组件 请求,响应,解析,异常 jwt:json web tooken """ """ http协议(非安全的,速度快):基于tcp之上的应用层协议 应用层协议- 如何交互的规范==请求与响应规范:首行 - 头 - 体 特点:无状态.无连接,所以的请求都是从客户端到服务端,ssl(安全加密机制https) wsgi协议:…
Serializers 序列化组件 为什么要用序列化组件 当我们做前后端分离的项目~~我们前后端交互一般都选择JSON数据格式,JSON是一个轻量级的数据交互格式. 那么我们给前端数据的时候都要转成json格式,那就需要对我们从数据库拿到的数据进行序列化. 接下来我们看下django序列化和rest_framework序列化的对比~~ Django的序列化方法 class BooksView(View): def get(self, request): book_list = Book.obje…
DRF框架的认证组件 核心代码:       self.perform_authentication(request)  框架自带模块:    from rest_framework import authentication 认证组件的返回值:request.user 自定义的认证组件的钩子方法authenticator.authenticate(self) :返回值是元组(user,auth) from rest_framework import authentication from re…
drf框架 接口过滤条件 群查接口各种筛选组件数据准备 models.py class Car(models.Model): name = models.CharField(max_length=16, unique=True, verbose_name='车名') price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='价格') brand = models.CharField(max_length=…
ModelSerializer 序列化准备: 配置 settings.py # 注册rest_framework框架 INSTALLED_APPS = [ ... 'rest_framework' ] # 配置mysql数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'db10', 'USER': 'root', 'PASSWORD':'root', } } ​ """…
Postman接口工具 官方 https://www.getpostman.com/ get请求,携带参数采用Params​post等请求,提交数据包可以采用三种方式:form-date.urlencoding.json​所有请求都可以携带请求头 DRF框架 安装 >: pip3 install djangorestframework 注册 rest_framework settings.py注册 app:INSTALLED_APPS = [ ..., 'rest_framework' ]  d…
DRF框架提供的版本控制组件 核心代码:           version, scheme = self.determine_version(request, *args, **kwargs)request.version, request.versioning_scheme = version, scheme 框架自带的模块:    from rest_framework import versioning 在视图中: 1.获取版本号:request.version 2.获取版本控制的类:r…
目录 drf框架 - 请求模块 | 渲染模块 解析模块 | 异常模块 | 响应模块 Postman接口工具 drf框架 注册rest_framework drf框架风格 drf请求生命周期 请求模块 源码入口 源码分析 重点总结 基于restful规范的drf接口 视图层: views.py 渲染模块 源码入口 源码分析 重点 使用 解析模块 为什么要配置解析模块 源码入口 使用 补充 异常模块 为什么要自定义异常模块 源码分析 使用 响应模块 响应类构造器:rest_framework.res…
目录 一.DRF介绍 1. 什么是DRF 2. 为什么要用DRF (1)使用DRF的原因 (2)站在开发者的角度来说用DRF的好处(暂时列举这么多) 二.用DRF开发后端项目 三.APIView请求生命周期 四.源码的dispatch中的方法 1. dispatch中的功能模块 (1)请求模块 (2)解析模块 (3)响应模块 (4)渲染模块 (5)异常模块 一.DRF介绍 1. 什么是DRF DRF就是django框架的一个插件或者说是django的一个工具包,用于在Web后台构建Restful…