django-rest-framework

REST是它是一种架构风格 。REST就是通过使用HTTP协议和URI,利用client/server对资源进行CRUD操作。
REST优点:
1.客户端-服务端分离
优点:提高用户界面的便携性,通过简化服务器提高可伸缩性
2..无状态(Stateless):从客户端的每个请求要包含服务器所需要的所有信息
优点:提高可见性(可以单独考虑每个请求),提高了可靠性(更容易从局部故障中修复),提高可扩展性(降低了服务器资源使用)
3.缓存(Cachable):服务器返回信息必须被标记是否可以缓存,如果缓存,客户端可能会重用之前的信息发送请求
优点:减少交互次数,减少交互的平均延迟
4.统一接口
优点:提高交互的可见性,鼓励单独改善组件
5.支持按需代码(Code-On-Demand 可选)
优点:提高可扩展性

Django REST framework(以下简称 DRF)是一个开源的 Django 扩展,提供了便捷的 REST API 开发框架,拥有以下特性:
直观的 API web 界面。
多种身份认证和权限认证方式的支持。
内置了 OAuth1 和 OAuth2 的支持。
内置了限流系统。
根据 Django ORM 或者其它库自动序列化。
丰富的定制层级:函数视图、类视图、视图集合到自动生成 API,满足各种需要。
可扩展性,插件丰富。
广泛使用,文档丰富。

简单的使用:
1,安装与配置
pip install djangorestframework

settings.py 安装子应用 

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.py

#导入序列化库
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

 

**

 

posted @ 2019-02-26 10:14  Xcsg  Views(153)  Comments(0Edit  收藏  举报