zoukankan      html  css  js  c++  java
  • day-81drf

    element-ui(vue上的bootstrap)

    eu:

     书写特定的组件标签构建特点的结构样式

    安装:

      项目目录下的终端

       cnpm i element-ui -S

    main.js引入:

      import ElementUI from 'element-ui';

      import 'element-ui/lib/theme-chalk/index.css';

      Vue.use(ElementUI);

    使用:

      官方API

      https://element.eleme.cn/#/zh-CN/component/installation

    web接口

    什么叫接口:

      通过url链接来进行前台访问后台,期间url需要传递必须和可选参数,最后来获得想要数据

    接口的特点:

      不返回页面,只返回数据

    web接口规范(RESTful规范)

      规范规定了两部分:

        1、url链接应该怎么写

        2、返回的数据格式如何写

    1)通常使用https请求                #url数据更安全
    
    2)链接会出现api字眼                #得到的是数据,不是页面
    
        https://api.baidu.com
        https://www.baidu.com/api
    
    3)版本:不同版本需要标注             #接口迭代出现多版本共存
    
        https://api.baidu.com/v1
        https://api.baidu.com/v2
    
    4)资源:请求的目标数据称之为资源,单资源采用资源名称名词,多资源采用资源名称名词的复数
    
        https://api.baidu.com/v2/book | https://api.baidu.com/v2/books
        https://api.baidu.com/book | https://api.baidu.com/books
    
    5)请求方式:通过请求的方式决定操作方式
    
        -- get:https://example.com/api/v1/books  获取所有
        -- get:https://example.com/api/v1/book/1  获取id=1一本
        -- post:https://example.com/api/v1/book  新增一本
        -- put:https://example.com/api/v1/book/1  更新id=1的一本
        -- patch:https://example.com/api/v1/book/1  更新id=1的一本
        -- delete:https://example.com/api/v1/book/1  删除id=1的一本
        
    6)资源过滤:通过接口传递参数来过滤资源 - limit|ordering|page
    
        -- https://example.com/api/v1/books?limit=10  限制10条
        
    7)数据状态码:返回数据要标准状态码,通过在数据中 {"status": 0}         #注:数据状态码都是约定的(不是死的)
    
        -- SUCCESS("0", "查询成功")
        -- NODATA("1", "非正确,无数据,显示基本信息")
        -- FEAILED("2", "查询失败")
        
    8)错误信息:请求失败需要标注错误信息 - {"error": "错误信息"} => {"msg": "数据状态描述信息"}
    
    9)数据(操作的资源返回结果):{"results": []} | {"data": []} | {"token": "*"}

        -- get:返回资源列表 | 返回单一资源
        -- post:返回单一新增资源
        -- put:返回更新的资源
        -- patch:返回更新的资源
        -- delete:返回空文档

    10) 子资源返回资源接口:返回的资源如果有子资源,返回子资源的链接地址,如查找书,书的封面图片就可以url表示

     

    drf框架(Django REST Framework)

      drf是django写满足restful规范接口的一个插件

    安装:

      >: pip3 install djangorestframework

    配置:settings.py
      REST_FRAMEWORK = {
        # 自定义配置
      }

    drf源码解析

    from rest_framework.views import APIView
    from rest_framework.request import Request
    from rest_framework.response import Response
    from rest_framework.viewsets import ViewSet, ModelViewSet
    from rest_framework.exceptions import APIException
    from rest_framework.pagination import PageNumberPagination
    
    
    # APIView类(重写原生view的方法)
    
    # as_view(): 
        #就干了一件事:禁用了csrf中间件的安全认证
    # dispatch():
    #   1) 二次封装request对象,将原wsgi的request对象保留至 _request 中
    #   2) 将数据包中的数据解析到request.data,将url链接?后的数据解析到request.query_params
    #   3) drf的三大认证
    #   4) 二次处理响应对象response在返回
    
    class User(APIView):
        def get(self, request, *args, **kwargs):
            data_dic = {
                'status': 0,
                'msg': 'get ok',
                'results': {
    
                }
            }
            return Response(data_dic)
    
        def post(self, request, *args, **kwargs):
        
            a = request.query_params.get('a')
            x = request.data.get('x')
            print(a, x)
            
            data_dic = {
                'status': 0,
                'msg': 'post ok',
                'results': {
    
                }
            }
            return Response(data_dic)
  • 相关阅读:
    zookeeper的集群搭建
    Java代码操作zookeeper
    zookeeper的简介和相关命令操作
    Linux上搭建zookeeper服务注册中心
    Java8新特性(三)之方法引用和构造器引用
    Java8新特性(一)之Lambda表达式
    react-navigation 3.x版本的使用
    react-navigation 3.x版本的安装以及react-native-gesture-handler配置
    react-native 打包 出apk
    webpack的使用
  • 原文地址:https://www.cnblogs.com/klw1/p/11346886.html
Copyright © 2011-2022 走看看