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