01: Django rest framework 基础】的更多相关文章

1.1 RESTful API设计规范 参考地址: http://www.cnblogs.com/wupeiqi/articles/7805382.html   1.API与用户的通信协议,总是使用HTTPs协议.   2.域名  https://api.example.com                         尽量将API部署在专用域名(会存在跨域问题) https://example.org/api/                        API很简单 3.版本 URL…
01: Django rest framework 基础 ​ ​ 1.1 什么是RESTful 1. REST与技术无关,代表的是一种软件架构风格(REST是Representational State Transfer的简称,中文翻译为"表征状态转移") 2. REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识 3. 所有的数据,不过是通过网络获取的还是操作(增删改查)的数据,都是资源,将一切数据视为资源是REST区别与其他架构风格的最本质属性 4.…
DRF中的Request 在Django REST Framework中内置的Request类扩展了Django中的Request类,实现了很多方便的功能--如请求数据解析和认证等. 比如,区别于Django中的request从request.GET中获取URL参数,从request.POST中取某些情况下的POST数据. 在APIView中封装的request,就实现了请求数据的解析: 对于GET请求的参数我们通过request.query_params来获取. 对于POST请求.PUT请求的…
rest-framework文档地址:http://www.django-rest-framework.org/ Django Rest framework是一个非常强大且灵活的工具包,用于构建web API 选择rest framework的理由: 1)在线可视的API 2)验证策略涵盖了OAuth1a和OAuth2 3)同时支持ORM(对象关系映射)和非ORM数据源的序列化 4)大量文档及强大社区支持 1.安装:pip install djangorestframework 说明:如果安装c…
01-Django REST Framework的介绍 Django REST框架是一个用于构建Web API的强大而灵活的工具包. 您可能希望使用REST框架的一些原因: 1. Web可浏览API对于开发人员来说是一个巨大的可用性胜利. 2. 身份验证策略,包括OAuth1a和OAuth2的包. 3. 支持ORM和非ORM数据源的序列化. 4. 自始至终都可以定制-如果不需要更强大的功能,只需使用常规的基于函数的视图. 5. 广泛的文档和良好的社区支持. 6. 被国际知名公司使用和信任,包括M…
先看一张图,对DRF的各个APIView,Mixin,Viewset等有个基本印象: 具体使用方法: 1.APIView: DRF 的API视图 有两种实现方式: 一种是基于函数的:@api_view 一种是基于类的:APIView,APIView是Restframework提供的所有视图的基类,继承自Django的View父类 1)@api_view 使用@api_view装饰器,使得我们此处的Request不在是Django标准的HttpRequest,而是restframework的Req…
1.Request restframework提供了一个Request对象(rest_framework.request.Request) Request对象继承了Django默认的HttpRequest对象,它最核心的功能就是请求数据都包含在request.data属性中,类似于Django的request.POST,但是request.data应用范围更广: 1)request.data:返回解析之后的请求体数据,类似于Django中标准的request.POST和request.FILES…
解析器 解析器的作用 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己可以处理的数据.本质就是对请求体中的数据进行解析. 在了解解析器之前,我们要先知道Accept以及ContentType请求头. Accept是告诉对方我能解析什么样的数据,通常也可以表示我想要什么样的数据. ContentType是告诉对方我给你的是什么样的数据类型. 解析器工作原理的就是拿到请求的ContentType来判断前端给我的数据类型是什么,然后我们在后端使用相应的解析器去解析数据. Django中的…
认证.权限和限制 身份验证是将传入请求与一组标识凭据(例如请求来自的用户或其签名的令牌)相关联的机制.然后 权限 和 限制 组件决定是否拒绝这个请求. 简单来说就是: 认证确定了你是谁 权限确定你能不能访问某个接口 限制确定你访问某个接口的频率 认证 REST framework 提供了一些开箱即用的身份验证方案,并且还允许你实现自定义方案. 接下类我们就自己动手实现一个基于Token的认证方案: 自定义Token认证 表 定义一个用户表和一个保存用户Token的表: class UserInf…
DRF分页组件 为什么要使用分页 我们数据表中可能会有成千上万条数据,当我们访问某张表的所有数据时,我们不太可能需要一次把所有的数据都展示出来,因为数据量很大,对服务端的内存压力比较大还有就是网络传输过程中耗时也会比较大. 通常我们会希望一部分一部分去请求数据,也就是我们常说的一页一页获取数据并展示出来. DRF使用分页器 分页模式 rest framework中提供了三种分页模式: from rest_framework.pagination import PageNumberPaginati…
1  认证.权限和限制 2  认证 2.1  自定义Token认证 2.1.1  表 2.1.2  定义一个登录视图: 2.1.3  定义一个认证类 2.1.4  视图级别认证 2.1.5  全局级别认证 3  权限 3.0.6  自定义一个权限类 3.0.7  视图级别配置 3.0.8  全局级别设置 4  限制 4.0.9  自定义限制类 4.0.10  视图使用 4.0.11  全局使用 4.1  使用内置限制类 4.1.1  全局配置 DRF的版本 版本控制是做什么用的, 我们为什么要用…
DRF的版本控制 为什么需要版本控制 API 版本控制允许我们在不同的客户端之间更改行为(同一个接口的不同版本会返回不同的数据). DRF提供了许多不同的版本控制方案. 可能会有一些客户端因为某些原因不再维护了,但是我们后端的接口还要不断的更新迭代,这个时候通过版本控制返回不同的内容就是一种不错的解决方案. DRF提供的版本控制方案 DRF提供了五种版本控制方案,如下图: 版本控制系统的使用 全局配置 这里我们以 URLPathVersioning 为例,还是在项目的settings.py中RE…
表结构: class Article(models.Model): id = models.AutoField(primary_key=True) title = models.CharField(max_length=64) create_time = models.DateField(auto_now=True) type = models.SmallIntegerField( choices=((1, '原创'), (2, '转载')), default=1 ) source = mode…
之前按照REST Framework官方文档提供的简介写了一系列的简单的介绍博客,说白了就是翻译了一下简介,而且翻译的很烂.到真正的生产时,就会发现很鸡肋,连熟悉大概知道rest framework都不算,反正楼主看来,要想真正的将rest玩弄于股掌之内,很明显,那一份样例是远远不够的.所以开辟一个新的REST Framework API Guide系列,这在rest framework的官方文档也还是有的,而且,不用想它是最全面的.这边这个系列的主要目的是为了自己能够抓住生产上的重点,从代码实…
一.项目介绍 1.1.掌握的技术 Vue + Django Rest Framework 前后端分离技术 彻底玩转restful api 开发流程 Django Rest Framework 的功能实现和核心源码分析 Sentry 完成线上系统的错误日志的监控和告警 第三方登录和支付宝支付的集成 本地调试远程服务器代码的技巧 1.2.课程系统构成 vue前端项目 django rest framework 系统实现前台功能 xadmin后台管理系统 vue部分: API 接口 Vue 组件 与a…
目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Django rest framework(4)----版本 Django rest framework(5)----解析器 Django rest framework(6)----序列化 Django rest framework(7)----分页 一.基础 1.1.安装 两种方式: github pip…
django rest framework 之视图 序列化器    PagerSerialiser from rest_framework import serializers from api import models class PagerSerialiser(serializers.ModelSerializer): class Meta: model = models.Role fields = "__all__" APIview ApiAPIView 实现分页的写法如下 f…
本节大纲 1.Validators 2.Authentication Validators 在REST框架中处理验证的大多数时间,您将仅仅依赖于缺省字段验证,或在序列化器或字段类上编写显式验证方法.但是,有时您需要将验证逻辑放入可重用组件中,以便可以在整个代码库中轻松地重用它.这可以通过使用验证器函数和验证器类来实现. Validation in REST framework Django REST framework serializer里面的验证处理有一些不同于Django ModelFor…
Django Rest Framework 是一个强大且灵活的工具包,用以构建Web API 为什么要使用Rest Framework Django REST Framework可以在Django的基础上迅速实现API,并且自身还带有WEB的测试页面,可以方便的测试自己的API web应用模式分两种: 1. 前后端不分离 在前后端不分离的引用模式中,前端页面看到的效果都是由后端控制的,由后端页面渲染或者重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高,这种模式比较适合纯网页应用,但是…
昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: 1. 页面上交互 触发数据的变化 2. 去后端获取新的数据(异步操作 ajax请求) 3. dispatch('获取新数据') --> 放在actions中 4. 拿到了新数据了 5. 去更新state中对应的数据(同步操作 state.noteList=[xx,xx,xx])--> 放在muta…
前言 Django REST framework is a powerful and flexible toolkit for building Web APIs. 本文由浅入深的引入Django REST framework (以后简称DRF)并剖析源码流程,让看官们对DRF有更深的认识,在使用的时候更得心应手. 如有错误,不吝赐教 帮忙指正,水平有限,本文示例代码请核对后使用. 前后端分离 什么是前后端分离以及前后端分离的应用场景? 我实在不知道怎么描述,下面给一个我自己的片面理解: RES…
Django 的 CBV&FBV Django FBV, function base view  视图里使用函数处理请求 url url(r‘^users/‘, views.users), views from django.shortcuts import HttpResponse import json def users(request): user_list = ['lcg','superman'] return HttpResponse(json.dumps((user_list)))…
内容回顾: . django请求生命周期 -> 执行遵循wsgi协议的模块(socket服务端) -> 中间件(路由匹配) -> 视图函数(业务处理:ORM.模板渲染) -> 中间件 -> wsgi返回 . 什么wsgi web服务网关接口 实现该协议的模块: - wsgiref - werkzurg - uwsig . 视图 - FBV url - 函数 - CBV url - view . djang rest framework . restful 规范() 什么是接口…
Json Web Token 1.JWT简介 JWT 是一个开放标准(RFC 7519),它定义了一种用于简洁,自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法.JWT 可以使用 HMAC 算法或者是 RSA 的公钥密钥对进行签名.它具备两个特点: 简洁(Compact) 可以通过URL, POST 参数或者在 HTTP header 发送,因为数据量小,传输速度快 自包含(Self-contained) 负载中包含了所有用户所需要的信息,避免了多次查询数据库 2.JWT 组成…
RESTful API 认证 和 Web 应用不同,RESTful APIs 通常是无状态的, 也就意味着不应使用 sessions 或 cookies, 因此每个请求应附带某种授权凭证,因为用户授权状态可能没通过 sessions 或 cookies 维护, 常用的做法是每个请求都发送一个秘密的 access token 来认证用户, 由于 access token 可以唯一识别和认证用户, API 请求应通过 HTTPS 来防止 man-in-the-middle(MitM)中间人攻击. 通…
一.基础 最近正好有机会去写一些可视化的东西,就想着前后端分离,想使用django rest framework写一些,顺便复习一下django rest framework的知识,只是顺便哦,好吧.我承认我是故意的,因为我始终觉得,如果好的技术服务于企业,顺便的提高一下自己.大家都很开心不是不.再次强调一下,真的只是顺便. 安装吧 pip install djangorestframework 1.2.需要先了解的一些知识 理解下面两个知识点非常重要,django-rest-framework…
Django ORM(基础) Django 框架十分强大,自带数据库操作功能.Django 跟 SQLAchemy 一样,也是通过ORM(Object Relational Mapping,关系对象映射)的方式对数据库进行操作,django中遵循 Code Frist (根据代码中定义的类来自动生成数据库表)的原则. 一.创建表 1.在SQLite中创建表 1.1.在app中的models.py中先写类: from django.db import models # Create your mo…
4- vue django restful framework 打造生鲜超市 -restful api 与前端源码介绍 天涯明月笙 关注 2018.02.20 19:23* 字数 762 阅读 1352评论 6喜欢 16 使用Python3.6与Django2.0.2(Django-rest-framework)以及前端vue开发的前后端分离的商城网站 项目支持支付宝支付(暂不支持微信支付),支持手机短信验证码注册, 支持第三方登录.集成了sentry错误监控系统. 线上演示地址: http:/…
3- vue django restful framework 打造生鲜超市 - model设计和资源导入 使用Python3.6与Django2.0.2(Django-rest-framework)以及前端vue开发的前后端分离的商城网站 项目支持支付宝支付(暂不支持微信支付),支持手机短信验证码注册, 支持第三方登录.集成了sentry错误监控系统. 本小节内容: model设计与资源引入 资源初始化 数据库设计,数据表结构 新建虚拟环境 mkvirtualenv -p=D:\softEnv…
Vue+Django REST framework实战 使用Python3.6与Django2.0.2(Django-rest-framework)以及前端vue开发的前后端分离的商城网站 项目支持支付宝支付(暂不支持微信支付),支持手机短信验证码注册, 支持第三方登录.集成了sentry错误监控系统 本小节内容: 介绍教程可以掌握的技术点和内容. 掌握的技术 Vue + Django Rest Framework 前后端分离技术 彻底玩转restful api 开发流程 Django Rest…