zoukankan      html  css  js  c++  java
  • 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

    **

  • 相关阅读:
    js遍历不要使用index 而是使用id(数据唯一表示)
    eureka
    Mybatis-plus自动填充字段的值(如createTime,UpdateTime)
    计算机网络入门
    操作系统入门
    计算机组成原理入门
    《事实》读书笔记
    推荐算法入门
    源码编译安装apache2.4脚本
    Mycat实现读写分离
  • 原文地址:https://www.cnblogs.com/xcsg/p/10435599.html
Copyright © 2011-2022 走看看