一、vue项目与django项目的交互

  • vue中的发送ajax请求,其中的参数有:
  1. created() {
  2. this.$axios({
  3. url: 'http://127.0.0.1:8000/test/', // 请求地址
  4. method: 'post', // 请求方式
  5. params: { // 拼接参数
  6. a: 1
  7. },
  8. data: { // data数据包
  9. x: 10
  10. },
  11. headers: { // 请求头
  12. authorization: 'abc.def.xyz', // 请求头内容
  13. token: 1,
  14. owen: 2,
  15. // 后台:request.META.get('HTTP_参数名全大写')
  16. }
  17. }).then(response => { // then相当于success , 进行回调函数
  18. console.log('成功:', response.data)
  19. }).catch(error => { // 错误捕捉
  20. console.log('失败:', error.response.data) // error.response.data 错误信息
  21. })
  22. }
  • django后端的request的方法
  1. request.META # 获取请求头
  2. CORS_ORIGIN_ALLOW_ALL = True # 允许跨域
  3. CORS_ALLOW_HEADERS = [ # 重写CORS_ALLOW_HEADERS,定义允许访问的请求头,前面的都是系统默认的要再加上
  4. "accept",
  5. "accept-encoding",
  6. "authorization",
  7. "content-type",
  8. "dnt",
  9. "origin",
  10. "user-agent",
  11. "x-csrftoken",
  12. "x-requested-with",
  13. "token",
  14. "owen",
  15. ]

二、drf(Django-restframework)

1. drf主要知识点

  1. """
  2. 1、接口:接口的概念、数据接口文档、接口规范(restful)、Postman接口测试工具
  3. 2、drf请求生命周期 - CBV
  4. 3、drf的基础组件:请求、响应、渲染、解析、异常
  5. 4、drf的序列化(核心):序列化、模型序列化、群操作序列化
  6. 5、drf的视图家族:视图类(常用)、视图工具类、工具视图类(常用)、视图集
  7. 6、drf的三大认证(核心):认证、权限、频率
  8. 7、drf的过滤:筛选、搜索、排序、分页、区间、自定义
  9. """

2. drf框架安装

  1. """
  2. drf框架安装:
  3. 1)drf是Django的插件,所以要提前按照Django
  4. 2)终端中使用命令:python pip install djangorestframework
  5. 3)使用drf时,要在settings中注册
  6. """

3. web接口(WEB API)

  1. """
  2. 什么是web接口:就是 采用某种请求方式提交请求参数,获得响应数据的 url链接
  3. 四部分:url链接 + 请求方式 + 请求参数 + 响应数据
  4. web接口文档的书写:包含一个接口的访问的url链接的格式和需要的请求参数,以及访问后其响应数据。
  5. 详情见:https://www.cnblogs.com/xiaoyuanqujing/articles/11869745.html
  6. """

4. restful接口规范

  1. """
  2. url链接:
  3. 1)接口都是操作前后台数据的,所以需要保证数据的安全性
  4. 采用https协议
  5. 2)接口用来操作数据,与网址(操作页面)有区别,所以用特定的关键字表示接口
  6. api关键字
  7. - https://api.baidu.com
  8. - https://www.baidu.com/api
  9. 3)接口操作的数据称之为 资源,在url中只体现 资源 名称(名词),不体现操作资源的方式动词
  10. 常规资源接口
  11. - https://api.baidu.com/books/
  12. - https://api.baidu.com/books/(pk)/
  13. 非常规接口 - 和某资源不是特别密切或是不止一种资源
  14. - https://api.baidu.com/login/
  15. - https://api.baidu.com/place/search/
  16. 4)如果一个资源存在多版本结果,在url链接中要用特定符号来兼容多版本共存
  17. v1|v2
  18. - https://api.baidu.com/v1/books/
  19. - https://api.baidu.com/v2/books/
  20. 5)群资源操作,一般还有额外的限制条件,如排序、限制调试、分页等等
  21. ?限制条件
  22. - https://api.baidu.com/v1/books/?ordering=-price&limit=3
  23. 请求方式
  24. 6)五大请求方式
  25. get:获取单个或多个资源
  26. - https://api.baidu.com/books/
  27. 群查,返回多个结果对象
  28. - https://api.baidu.com/books/(pk)/
  29. 单查,返回单个结果对象
  30. post:新增单个或多个资源(都是一个url)*********************************
  31. - https://api.baidu.com/books/
  32. 单增,提交单个数据字典,完成单增,返回单个结果对象
  33. 群增,提供多个数据字典的数组,完成群增,返回多个结果对象
  34. put:整体修改单个或多个资源
  35. - https://api.baidu.com/books/
  36. 整体修改多个,提供多个数据字典的数组(数据字典中要包含主键),完成群改,返回多个结果对象
  37. - https://api.baidu.com/books/(pk)/
  38. 整体修改单个,提供单个数据字典(主键在url中体现),完成单改,返回单个结果对象
  39. patch:局部修改单个或多个资源
  40. 方式与put完全相同,不同的是:操作的资源如果有5个key-value键值对,put请求提供的字典必须全包含,但是patch提供的字典包含的键值对0~5个都可以
  41. delete:删除单个或多个资源
  42. - https://api.baidu.com/books/
  43. 多删,提供多个资源主键数据,完成群删,不做任何资源返回(一般我们会返回结果信息:成功|失败)
  44. - https://api.baidu.com/books/(pk)/
  45. 单删,不需要提供额外数据,完成单删,不做任何资源返回(一般我们会返回结果信息:成功|失败)
  46. 响应结果:
  47. 7)响应对象中要包含网络状态码(网络状态信息和网络状态码捆绑出现,不要额外设置):
  48. 1xx:基本信息
  49. 2xx:成功 - 200基本 201新增成功
  50. 3xx:重定向
  51. 4xx:客户端错误 - 400错误请求;403请求无权限;404请求资源不存在
  52. 5xx:服务端错误 - 500服务器错误
  53. 8)数据状态码(一般都是前后台约定规则):
  54. 0:成功
  55. 1:失败 - 1xx:具体失败信息(要在接口文档中明确写出)
  56. 2:无数据 - 2xx:具体无数据信息(要在接口文档中明确写出)
  57. 9)数据状态信息(一般不仅仅是对数据状态码的解释,更多是对结果的描述,给前台开发者阅读的)
  58. 10)数据结果(常量、数组、字典),如果有子资源(图片、音频、视频),返回资源的url链接
  59. {
  60. "status": 0,
  61. "msg": 'ok',
  62. "results": [{
  63. "name": "西游记",
  64. "img": "https://api.baidu.com/media/book/xyj.png"
  65. }]
  66. }
  67. """

三、django的CBV模型生命周期

  • django后端启动,执行urls文件中的各as_view()方法——》
  • 前端发送请求到后端对应的url——》
  • 后端根据请求方式调用类中对应的方法,再返回处理结果给前端

vue项目和django项目交互补充,drf介绍,restful规范的更多相关文章

  1. DRF之restful规范、Postman接口测试

    一. DRF简介 Django REST框架是一个功能强大且灵活的工具包,用于构建Web API. 使用REST框架的一些原因: 该网站可浏览API是你的开发人员一个巨大的可用性胜利. 身份验证策略包 ...

  2. 基于Django的Rest Framework框架的RESTful规范研究

    一.什么是RESTful规范 总的来说:RESTful规范就是一个非技术,人为约定的一个面向资源的架构理念. REST与技术无关,代表的是一种软件架构风格,REST是Representational ...

  3. 荣誉墙项目day26 django 项目路由配置

    项目路由配置文件包括:配置目录里的urls.py文件和各个app目录里的urls.py文件 1.include()——从项目主路由分配到各APP主路由 from django.conf.urls im ...

  4. Pipenv管理项目环境--Django项目的一些最佳实践

    virtualenv --- 使用不方便 提升效率,管理更便捷--- pipenv 新建环境:: pip3 install pipenv 在项目下,用pipenv安装 Djagno pipenv in ...

  5. django项目、vue项目部署云服务器

    目录 上线架构图 服务器购买与远程连接 安装git 安装mysql 安装redis(源码安装) 安装python3.8(源码安装) 安装uwsgi 安装虚拟环境 安装nginx(源码安装) vue项目 ...

  6. vue+uwsgi+nginx部署项目

    首先先下载好前后端项目 先从前端vue搞起 要在服务器上,编译打包vue项目,必须得有node环境 下载node二进制包,此包已经包含node,不需要再编译 wget https://nodejs.o ...

  7. 使用Nginx+uWSGI部署Django项目

    1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi l ...

  8. VSCode搭建django项目

    之前我们使用VSCode搭建C#项目,今天写一篇关于django项目的搭建,其实以其说是搭建django框架,不如说是如何通过vscode开发django项目:django官网:https://www ...

  9. 转载: 我如何使用 Django + Vue.js 快速构建项目

    原文链接: https://www.ctolib.com/topics-109796.html 正文引用如下 引言 大U的技术课堂 的新年第一课,祝大家新的一年好好学习,天天向上:) 本篇将手把手教你 ...

随机推荐

  1. ubuntu 设置静态ip,但显示scope global secondary ens33

    设置静态ip 修改 /etc/network/interfaces 文件 # The loopback network interface auto lo iface lo inet loopback ...

  2. Android Application的基本组件介绍

    一个Android应用通常由一个或多个基本组件组成,常用的一般有Activity.Service.BroadcastReceiver.ContentProvider.Intent等等. ⒈Activi ...

  3. if(!ConnectDBProc(strCmd,m_dbUserName,m_dbPassword))

    https://wenku.baidu.com/view/826b3d426bec0975f565e204.html

  4. 深入应用C++ 11 C2

    template<typename T> void print(T& t) { cout << "lvalue" << endl; } ...

  5. Codeforces Round #586 (Div. 1 + Div. 2) D.Alex and Julian 简单证明

    题意:在序列中删除最少元素使得得到的图是二分图. 其中点是整数域的点. 比如b1=2   那么a可以连b当且仅当|a-b|=2 同时这里的a,b是任意整数. 怎样判定一个序列是否合法呢?于是想到了二分 ...

  6. redis 工具包

    java通过jedis操作redis(从JedisPool到JedisCluster) redis作为一个缓存数据库,在绝大多数java项目开发中是必须使用的,在web项目中,直接配合spring-r ...

  7. Pytest+allure安装和框架搭建

    接口自动化框架搭建 -- 公司系统自测使用,只跑核心业务流程 编辑中...... 1.安装Pytest pip install -U pytest 1.1Pycharm测试脚本运行 创建project ...

  8. Java lesson19homework

    package com.xt.lesson19; /** * 已知如下: 下表为某班级四次考试成绩单, 1. 要求使用HashMap<String, Integer>存储每次考试的成绩(k ...

  9. Visual Studio高分屏下Winform界面变形

    现在高分屏的电脑越来越多,2K屏,4K屏层出不穷,对于.net开发人员来说,尤其是Winform开发者, 分辨率一直是个比较头疼的事情,屏幕分辨率高了,如果仍然设置显示100%,会导致字体非常小,影响 ...

  10. mybatis如何接收字符串转换为date类型插入数据库

    今天遇到一个问题,先描述一下: 后台获取数据,有一个字段是时间字段,后台传过来的是字符串类型的,如:2016/11/16 10:26:17, 将该字符串放在map对象中(持久层用的是mybatis或者 ...