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中取值,直接处理

原文地址:https://www.cnblogs.com/yangyufeng/p/10594228.html

时间: 2024-11-09 06:14:32

restful规范及drf的相关文章

lement-ui、接口、restful规范、drf

element-ui 安装 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 <!--案例--> <el-row> <el-butto

RESTful规范和DRF

RESTful规范 REST风格 资源 网页中能看到的都是资源 URI 统一资源标识符 URL 统一资源定位符 统一资源接口 对资源的操作根据HTTP请求方式的不同来进行不同的操作 遵循HTTP请求方式的语义 前后端传输的是资源的表述 展现的是资源的状态 凡是遵循REST风格实现的前后端交互都叫RESTful架构 核心思想 面向资源去编程, url中尽量用名词不要用动词 根据HTTP请求方式的不同对资源进行不同的操作 在url中体现的 体现版本 https://v3.bootcss.com/ h

DRF框架:接口 ,restfui接口规范,基于restful规范的原生Django接口,Postman接口工具

DRF框架 全称:django-rest framework 接口 接口:联系两个物质的媒介,完成信息交互 web程序中:联系前台页面与后台数据库的媒介 web接口组成: url:长得像放回数据的url链接 请求参数:前台按照指定的key提供数据给后台 响应数据:后台与数据库交互后将数据反馈给前台 restful接口规范 接口规范:就是为了采用不同的后台语言,也能使用同样的接口获取到同样的数据 如何写接口:接口规范是 规范化书写接口的,写接口要写 url.响应数据 注:如果将请求参数也纳入考量范

Django框架 --CBV源码分析、restful规范、restframework框架

一.CBV源码分析 1.url层的使用CBV from app01 import views url(r'book/',views.Book.as_view()) 2.as_view方法 as_view是一个类方法,实际上是一个闭包函数(内层函数包含对外层作用域的使用) 请求来了以后,调用as_view方法,调用函数中的view方法,view方法是调用了dispatch方法 @classonlymethod def as_view(cls, **initkwargs): def view(req

django中cbv源码和restful规范

1 django 请求声明周期 -先进入实现了wsgi协议的web服务器---->进入django--->中间件--->路由--->视图--->取模板,取数据,用数据渲染模板--->返回模板的字符串--->在浏览器上看到页面了 2 开发模式(前后端分离和前后端不分离) -前后端不分离项目 -前后端分离项目 前端和后端通过json格式数据交互 3 cbv 源码分析 -FBV和CBV -执行流程: -路由如果这么配置:url(r'^test/', views.Test

十二.Django---restful framework框架 restful 规范

一 .restful 规范 Django REST框架是一个功能强大且灵活的工具包,用于构建Web API. Django Rest Framework(DRF)为我们的Django Talk项目创建RESTFul API ,这是一个用于快速构建基于Django模型的RESTful API的应用程序. 一个能快速为我们提供API接口,方便我们编程的框架.API是后端编程人员写的,为了让前端拿数据的一个接口,通常就是以url的形式存在 原文地址:https://www.cnblogs.com/lo

restful规范与rest_framework

restful规范与rest_framework django两种开发模式: 一.前后端不分离项目 二.前后端分离项目 什么是restful规范? 在前后端不分离的项目中,网页所需要的数据可以直接通过模板渲染的方式传递到前端页面,并且可以很好的支持django自带的各种验证工具,比如csrfmiddleware 但在前后端分离的项目中,前后端的数据通信普遍通过json字符串的形式通信,那么我们就需要有个标准去定义前后端沟通方式或者说格式 restful就是来干这件事情的,它是一种面向资源的架构,

DjangoRestFramework学习一之restful规范、APIview、解析器组件、Postman等

DjangoRestFramework学习一之restful规范.APIview.解析器组件.Postman等 本节目录 [TOC] 一 预备知识 预备知识:django的CBV和FBV CBV(class based view):多用,简单回顾一下 FBV(function based view): CBV模式的简单操作:来个登陆页面吧 login.html文件内容如下: <!DOCTYPE html> <html lang="en"> <head>

18.DjangoRestFramework学习一之restful规范、APIview、解析器组件、Postman等

一 预备知识 预备知识:django的CBV和FBV CBV(class based view):多用,简单回顾一下 FBV(function based view): CBV模式的简单操作:来个登陆页面吧 login.html文件内容如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</tit