一.登录认证示例 模拟用户登录,获取token,当用户访问订单或用户中心时,判断用户携带正确的token,则允许查看订单和用户信息,否则抛出异常: from django.conf.urls import url from django.contrib import admin from api import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^api/v1/auth/$', views.AuthView.…
一.什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态 REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” 所有的数…
一.django的FBV 和 CBV 1.FBV(基于函数的视图): urlpatterns = [ url(r'^users/', views.users), ] def users(request): user_list = ["amy", "jack", "lily"] return HttpResponse(json.dumps(user_list)) 2.CBV(基于类的视图): urlpatterns = [ url(r'^stude…
认证权限 解析BaseAuthentication源码 # 做认证权限 from rest_framework import exceptions from ..models import * class MyAuthentication(object): def authenticate(self,request): token = request._request.GET.get('token') user_token_obj = UserToken.objects.filter(token…
0|1一.认证组件的作用 在一个程序中有一些功能是需要登录才能使用的,原生Django中的auth组件可以用来解决这个认证问题,drf框架中也有对应的认证组件来解决这个问题. models.py   from django.db import models # Create your models here. class User(models.Model): name = models.CharField(max_length=16) pwd = models.CharField(max_le…
认证是确定你是谁 权限是指你有没有访问这个接口的权限 限制主要是指限制你的访问频率 认证 REST framework 提供了一些开箱即用的身份验证方案,并且还允许你实现自定义方案. 接下类我们就自己动手实现一个基于Token的认证方案: 自定义Token认证 表 定义一个用户表和一个保存用户Token的表: # 用户表 class UserInfo(models.Model): name = models.CharField(max_length=32) pwd = models.CharFi…
一.Token 认证的来龙去脉 摘要 Token 是在服务端产生的.如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端.前端可以在每次请求的时候带上 Token 证明自己的合法地位 为什么要用 Token? 要回答这个问题很简单——因为它能解决问题! 可以解决哪些问题呢? Token 完全由应用管理,所以它可以避开同源策略 Token 可以避免 CSRF 攻击 Token 可以是无状态的,可以在多个服务间共享 Token 是在服务端产生的.如果前端使…
一.rest framework的分页 1.使用rest framework内置类PageNumberPagination实现分类 from django.conf.urls import url from api import views urlpatterns = [ url(r'^(?P<version>[v1|v2]+)/pager1/$', views.Pager1View.as_view()), ] urls.py from rest_framework.views import…
0|1一.频率组件的作用 在我们平常浏览网站的时候会发现,一个功能你点击很多次后,系统会让你休息会在点击,这其实就是频率控制,主要作用是限制你在一定时间内提交请求的次数,减少服务器的压力. modles.py 0|1二.自定义频率组件类 #(1)取出访问者ip # (2)判断当前ip不在访问字典里,添加进去,并且直接返回True,表示第一次访问,在字典里,继续往下走 # (3)循环判断当前ip的列表,有值,并且当前时间减去列表的最后一个时间大于60s,把这种数据pop掉,这样列表中只有60s以内…
1.请求的封装 class HttpRequest(object): def __init__(self): pass @propery def GET(self): pass @propery def POST(self): pass @propery def body(self): pass​class Request(object): def __init__(self,request): self._request = request def data(self): if content…
一.rest framework的版本使用 1.版本可以写在URL中,通过GET传参,如 http://127.0.0.1:8082/api/users/?version=v1 (1)自定义类获取版本信息: from django.http import JsonResponse from rest_framework.views import APIView class ParamVersion(object): """获取版本""" def…
本文目录 一 解析器的作用 二 全局使用解析器 三 局部使用解析器 四 源码分析 回到目录 一 解析器的作用 根据请求头 content-type 选择对应的解析器对请求体内容进行处理. 有application/json,x-www-form-urlencoded,form-data等格式 回到目录 二 全局使用解析器 setting里 REST_FRAMEWORK = { 'DEFAULT_PARSER_CLASSES':[ 'rest_framework.parsers.JSONParse…
本文目录 一 自定义路由(原始方式) 二 半自动路由(视图类继承ModelViewSet) 三 全自动路由(自动生成路由) 回到目录 一 自定义路由(原始方式) from django.conf.urls import url from app01 import views urlpatterns = [ url(r'^books/$', views.BookView.as_view()), url(r'^books/(?P<pk>\d+)$', views.BookDetailView.as…
本文目录 一 作用 二 内置的版本控制类 三 局部使用 四 全局使用 五 示例 源码分析 回到目录 一 作用 用于版本的控制 回到目录 二 内置的版本控制类 from rest_framework.versioning import QueryParameterVersioning,AcceptHeaderVersioning,NamespaceVersioning,URLPathVersioning #基于url的get传参方式:QueryParameterVersioning------>如…
本文目录 一 Django自带序列化组件 二 rest-framework序列化之Serializer 三 rest-framework序列化之ModelSerializer 四 生成hypermedialink(极少数) 五 序列化组件之请求数据校验和保存功能 序列化组件源码分析 回到目录 一 Django自带序列化组件 详见 回到目录 二 rest-framework序列化之Serializer models部分: from django.db import models # Create…
一.什么是RESTful规范 总的来说:RESTful规范就是一个非技术,人为约定的一个面向资源的架构理念. REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态 REST与技术无关,代表的是一种软件架构风格,REST是Representat…
本文目录 一 基本视图 二 mixin类和generice类编写视图 三 使用generics 下ListCreateAPIView,RetrieveUpdateDestroyAPIView 四 使用ModelViewSet 回到目录 一 基本视图 写一个出版社的增删查改resful接口 路由: url(r'^publish/$', views.PublishView.as_view()), url(r'^publish/(?P<pk>\d+)/$', views.PublishDetailV…
本文目录 一 简单分页(查看第n页,每页显示n条) 二 偏移分页(在第n个位置,向后查看n条数据) 三 CursorPagination(加密分页,只能看上一页和下一页,速度快) 回到目录 一 简单分页(查看第n页,每页显示n条) from rest_framework.pagination import PageNumberPagination # 一 基本使用:url=url=http://127.0.0.1:8000/pager/?page=2&size=3,size无效 class Pa…
本文目录 一 作用 二 内置渲染器 三 局部使用 四 全局使用 五 自定义显示模版 回到目录 一 作用 根据 用户请求URL 或 用户可接受的类型,筛选出合适的 渲染组件.用户请求URL:    http://127.0.0.1:8000/test/?format=json    http://127.0.0.1:8000/test.json 回到目录 二 内置渲染器 显示json格式:JSONRenderer 访问URL: http://127.0.0.1:8000/test/?format=…
用这个框架需要先安装: pip3 install djangorestframework 如果写了一个CBV的东西,继承了View. # 继承Django里面View class APIView(View): pass # 订单View继承了APIView,相当于这个订单里面的功能就更多了. class OrderView(APIView): pass restframework from rest_framework.views import APIView 这个APIView继承View 这…
前言: Django REST framework,是1个基于Django搭建 REST风格API的框架: 1.什么是API呢? API就是访问即可获取数据的url地址,下面是一个最简单的 Django API,访问http://127.0.0.1:8000/,返回用户列表: from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r…
django rest framework 官网 django rest framework 之 认证(一) django rest framework 之 权限(二) django rest framework 之 节流(三) django rest framework 之 版本(四) django rest framework 之 解析器(五) django rest framework 之 序列化(六) django rest framework 之 分页(七) django rest f…
一.基本流程举例: urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^users/', views.HostView.as_view()), ] urls from rest_framework.views import APIView from rest_framework.response import Response class HostView(APIView): def dispatch(self, request, *…
目录 Django组件库之(一) APIView源码 Django restframework (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)----分页 添加节…
一.rest-framework登录验证 1.models.py添加User和Token模型 class User(models.Model): name = models.CharField(max_length=32) pwd = models.CharField(max_length=32) class Token(models.Model): user = models.OneToOneField("User", on_delete=models.CASCADE) token…
认证 权限(授权) 用户访问次数/频率限制 版本 解析器(parser) 序列化 分页 路由系统 视图 渲染器 认证 自定义认证的类 """ from rest_framework.authentication import BaseAuthentication from rest_framework.exceptions import AuthenticationFailed from appname.models import UserToken class MyOrde…
Django REST framework介绍 Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API. 官网:https://www.django-rest-framework.org/ 中文文档:https://q1mi.github.io/Django-REST-framework-documentation/ Django REST framework安装与配置 安装 pip install dj…
一.开发模式: 1. 普通开发方式(前后端放在一起写) 2. 前后端分离(前后台通过ajaxo交互) 后端(django rest framework写的) <----ajaxo--->  前端(vue写的) <----- >  用户 好处: 二.后端开发 为前端提供url(API的开发或者接口的开发) 注:永远返回HttpResponse 路由 from django.conf.urls import url from django.contrib import admin fr…
1. Shiro框架:认证,授权(验权) a) 认证逻辑:applicationCode—>通过工具类获取subject对象,调用login方法参数令牌信息->安全管理器------>调用realm中认证方法(1.根据用户名查询真实密码,2.框架比对密码)   Shiro框架实现权限控制方式: 1. 在spring配置文件中配置过滤器链-设置项目中url拦截规则:url拦截-过滤器(anon,authc,perms,roles) 2. 注解方式:在service方法上使用shiro提供注…
Django Rest Framework框架 ---- url控制器…