REST是它是一种架构风格 。REST就是经过使用HTTP协议和URI,利用client/server对资源进行CRUD操做。
REST优势:
1.客户端-服务端分离
优势:提升用户界面的便携性,经过简化服务器提升可伸缩性
2..无状态(Stateless):从客户端的每一个请求要包含服务器所须要的全部信息
优势:提升可见性(能够单独考虑每一个请求),提升了可靠性(更容易从局部故障中修复),提升可扩展性(下降了服务器资源使用)
3.缓存(Cachable):服务器返回信息必须被标记是否能够缓存,若是缓存,客户端可能会重用以前的信息发送请求
优势:减小交互次数,减小交互的平均延迟
4.统一接口
优势:提升交互的可见性,鼓励单独改善组件
5.支持按需代码(Code-On-Demand 可选)
优势:提升可扩展性web
Django REST framework(如下简称 DRF)是一个开源的 Django 扩展,提供了便捷的 REST API 开发框架,拥有如下特性:
直观的 API web 界面。
多种身份认证和权限认证方式的支持。
内置了 OAuth1 和 OAuth2 的支持。
内置了限流系统。
根据 Django ORM 或者其它库自动序列化。
丰富的定制层级:函数视图、类视图、视图集合到自动生成 API,知足各类须要。
可扩展性,插件丰富。
普遍使用,文档丰富。sql
简单的使用:
1,安装与配置
pip install djangorestframework数据库
settings.py 安装子应用 django
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'mytest', 'mysite', 'myapp', 'supermarket', "rest_framework", ]
2,建立序列化 serializers.pyjson
#导入序列化库 from rest_framework import serializers #导入数据库类 from supermarket.models import Product #定义序列化类 class ProductSerializers(serializers.ModelSerializer): #定义内置类 class Meta: #指定序列化的字段 model = Product # fields = ('id','name','price','count') #取全部的字段 fields = "__all__"
3,views.py 定义json接口缓存
#导入视图类 from rest_framework import viewsets from .serializers import ProductSerializers #定义类,属于rest专用类,专门定义json接口 class ProductViewsets(viewsets.ModelViewSet): #输出序列化类 #定义sql queryset = Product.objects.all() serializer_class = ProductSerializers
4,配置路由服务器
#导入路由库 from rest_framework.routers import DefaultRouter from .views import ProductViewsets #定义路由对象 router = DefaultRouter() #注册路由 router.register('/json',ProductViewsets) #将路由注入 urlpatterns += router.urls
**session