当前位置: 首页 > news >正文

django REST framework(DRF)教程

Django DRF API

  1. Django 基本使用
  2. Django DRF序列化器
  3. Django DRF视图
  4. Django DRF常用功能

Django 基本使用

  • 前后端分离开发模式
  • 认识RestFulAPI
  • 回顾Django开发模式
  • Django REST Framework初探

前后端分离开发模式

在这里插入图片描述
前后端分离前:前端页面看到的效果都是由后端控制,即后端渲染HTML页面,前端与后端的耦合度很高。

前后端分离前存在的问题:

  • PC、APP、Pad等多端流行
  • 前后端开发职责不清晰:各司其职,最大程度减少开发难度,方便协作
  • 开发效率问题,一般后端开发需先等前端页面准备好,有时前端也一直配合后端,能力受限
  • 前后端代码混在一起,日积月累,维护成本增加
  • 后端开发语言和模板耦合

在这里插入图片描述
前后端分离后:后端仅返回前端所需要的数据,不再渲染HTML页面,不再控制前端的效果,至于前端展示什么效果,都由前端自己决定。

认识RestFulAPI

什么是RestfulAPI:
• REST(Representational State Transfer,表征状态转移)是一种Web服务的软件架构风格。
描述网络中客户端与服务端的一种交互方式,它本身不常用,常用的是如何设计RestfulAPI
(REST风格的网络接口)
• RestfulAPI风格就是把所有的数据都当做资源,对表的操作就是对资源操作
• 资源就是指的URL,基于URL对资源操作,Web服务在URL上支持一系列请求方法,如下表所
示。

HTTP方法 数据处理 说明
POST 新增 新增一个资源
GET 获取 获取一个资源
PUT 更新 更新一个资源
DELETE 删除 删除一个资源

示例:
非REST的URL:http://ip/get_user?id=123
REST的URL:http://ip/user/123

回顾Django开发模式

在这里插入图片描述
工作流程图

通过一个用户信息管理案例回顾Django开发模式!
目标:
• 熟悉Django项目创建流程
• 熟悉Django与HTML模板渲染
• 熟悉Ajax前后端数据交互
• 熟悉ORM数据库操作

Django REST Framework初探

Django REST framework (简称:DRF)是一个强大而灵活的 Web API 工具。
遵循RESTFullAPI风格,功能完善,可快速开发API平台。
官网文档:https://www.django-rest-framework.org

Django REST framework 最新版使用要求:
• Python(3.6、3.7、3.8、3.9、3.10)
• Django(2.2、3.0、3.1、3.2、4.0)

安装:

pip install djangorestframework

添加rest_framework到INSTALLED_APPS设置中:

INSTALLED_APPS = [
... 'rest_framework'
,
]

示例:实现用户增删改查的API
步骤:

  1. 创建APP
  2. 定义数据模型并同步数据库
  3. 编写序列化器文件
  4. 编写视图
  5. 添加API路由

1、创建APP

python manage
http://www.dtcms.com/a/109140.html

相关文章:

  • 一文读懂数据仓库:从概念到技术落地
  • 蓝桥杯Java B组省赛真题题型近6年统计分类
  • 7-5 表格输出
  • 高速电路 PCB 设计要点一
  • 2010-2020年 省级、城市数字经济创新创业-分项指数得分与排名 -社科数据
  • vue3 中引入tinymce富文本
  • 让AI再次伟大-MCP-Server开发指南
  • LeetCode Hot100 刷题笔记(7)—— 贪心
  • WPS JS宏编程教程(从基础到进阶)-- 第三部分:JS宏编程语言开发基础
  • Linux线程概念与控制:【线程概念(页表)】【Linux线程控制】【线程ID及进程地址空间布局】【线程封装】
  • 32f4,串口1,usart.c.h2025
  • EIP-712:类型化结构化数据的哈希与签名
  • 【行测】判断推理:图形推理
  • System.arraycopy()
  • SD 重温学习笔记
  • 深入理解 Python 中的 `server.listen(backlog)`:监听队列的奥秘
  • 《深度探秘:SQL助力经典Apriori算法实现》
  • GO语言学习(17)Gorm的数据库操作
  • 两点与圆(异或神通)
  • 快速求平方根
  • 【每日一个知识点】分布式数据湖与实时计算
  • Ubuntu上离线安装ELK(Elasticsearch、Logstash、Kibana)
  • Vulkan实例教程1 - Vulkan应用程序结构(附代码)
  • node ---- 解决错误【Error: error:0308010C:digital envelope routines::unsupported】
  • 第一部分 领域驱动设计的原则与实践
  • 10.多线程
  • 【C++】第八节—string类(上)——详解+代码示例
  • P4305 [JLOI2011] 不重复数字
  • 系统与网络安全------Windows系统安全(8)
  • 纯c++实现transformer 训练+推理