zoukankan      html  css  js  c++  java
  • restful规范及drf

    1. restful

    1.restful: 是一种规范, 面向资源架构
        10条规范:
            -1 API与用户的通信协议,总是使用HTTPs协议
            -2域名 
                https://api.example.com :尽量将API部署在专用域名(会存在跨域问题)
                https://example.org/api/:API很简单(我推荐)
            -3 版本
                -https://api.example.com/v1/
                -把版本号放在请求头中
                127.0.0.1/book/1
            -4 路径,视网络上任何东西都是资源,均使用名词表示(可复数)   必须说出来
                -127.0.0.1/get_all_book/ 以前你这么写
                -127.0.0.1/books/
            -5 method,通过请求方式来表示进行的操作
                127.0.0.1/books/  get请求:表示获取所有图书
                127.0.0.1/books/1  get请求:表示获取id为1的图书
                127.0.0.1/books/  post请求:表示新增一本书
                127.0.0.1/books/  delete请求:表示删除一本书
                127.0.0.1/books/  put/patch请求:表示修改一本书
            -6 过滤,通过在url上传参的形式传递搜索条件
            -7 状态码
                1 开头:服务器正在处理
                2 开头:服务器处理成功
                3 开头:重定向
                4 开头:客户端错误
                5 开头:服务器错误
                -注意:在返回的数据中携带状态码
            -8 错误处理,应返回错误信息,error当做key
            -9 返回结果针对不同操作,返回数据格式要求
            -10 返回结果中提供链接
    
        重要: 路径都用名词表示, 请求方式不同,表示不同的操作
       2. CBV(view)的源码执行流程
        -路由写成:url(r'^books/', views.Books.as_view()),
        -当程序启动,第二个位置其实已经放了一个函数的内存地址了(as_view内部view这个函数)
        -比如来了一个get请求,拿到第二个位置参数内存地址加括号执行(request,*args,**kwargs),其实就是view(request,*args,**kwargs)
        -本质就是执行了dispatch(request,*args,**kwargs)方法
        -dispatch方法内部通过请求方式(get,post),反射出要执行的方法,去执行,然后返回
       3. restfulframework的安装与使用
            方式一:pip3 install djangorestframework
            方式二:pycharm图形化界面安装
            方式三:pycharm命令行下安装(装在当前工程所用的解释器下)
       5 APIView的源码执行流程
            -比如get请求来了,执行View的as_view方法内部的view闭包函数,view闭包函数中执行了dispatch方法,
            -现在再执行dispatch,就已经不是View的dispatch,是APIView的dispatch方法了    

    2. 其他

        urlencode 编码
        formdata 编码   这两种编码,request.POST是有值的
        json 编码: request.POST是没有值的,只能从body中取值,直接处理
    学习,学习,学习! 学习是为了更好的未来,不要让别人瞧不起你,加油!!!
  • 相关阅读:
    Understand 学习
    2021年1月
    查看所有请求
    DB2日期和时间函数汇总
    .getClass和.class
    继承和实现接口的区别
    java8 stream
    Lambda表达式详解
    SQL语句小知识---XML文件中的 CDATA语法
    Java--mapper.xml中常用SQL标签
  • 原文地址:https://www.cnblogs.com/yangyufeng/p/10594228.html
Copyright © 2011-2022 走看看