【Django学习笔记 - 16】:DRF概述、Web应用模式(前后端分离简介)

简介: 【Django学习笔记 - 16】:DRF概述、Web应用模式(前后端分离简介)

DRF概述


DRF主要用于前后端分离的项目


   全称Django REST Framework,简称DRF,事实上,DRF就是一套基于Django开发的,能够帮助我们更好的设计符合REST规范的web应用的一个Django App,所以,本质上来说DRF就是一个Django的App。


   REST是一种软件架构设计风格,并不是标准,也不是技术实现,它只是提供了一组设计原则和约束条件,是目前比较流行的API设计规范,用于web数据接口的设计。


例如网易云音乐的路径设计风格就是REST Framework设计风格。路径简洁,方便,快捷。

8a8417966d9d42b48f1bda4efdd8747c.png


Web应用模式


一、前后端不分离


36bfd7f0d22b4f5a98be4361f7a37f4f.png


   在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。


   这种应用模式比较适合纯网页应用,但是当后端对接App时,App可能并不需要后端返回一个HTML网页,而仅仅是数据本身,所以后端原本返回网页的接口不再适用于前端App应用,为了对接App后端还需再开发一套接口。




二、前后端分离

f6bbe9c013aa4e6f90c516e577900d7f.png


   前端:即客户端,负责渲染用户显示界面(例如:WEB的js动态渲染页面,安卓,IOS,pc客户端等)


   后端:服务端,负责接收HTTP请求,处理数据


   前端以及后端就可以并行进行开发,二者之间的进度可以同时进行,而不需要等前端完成某一个功能之后才能实现后端,也不是需要等后端完成某一个功能之后才能去实现前端。


   API:Application Programming Interface 是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。


   在django中就是url。这个url对应的数据,前端需要数据就发送url,后端根据这个url返回结构化数据(如json)。


   前后端分离的过程: 前端通过HTTP请求API 后端以json形式返回前端需要的数据

   前端生成用户显示界面(如:html,ios,android)

   判断前后端分离的核心标准:显示页面是由谁(前端、后端)生成


   1.后端生成(前后端未分离) render(html)或flask中render_template


   2. 前端生成(前后端分离)


   前后端分离的优点:


   前后端各司其职,专注于解决一个方向的问题


   前端:视觉,兼容性,前端性能优化


   后端:并发,可用性,性能 前端和后端都易于扩展(耦合性低)


   后端能够灵活搭配各类型的前端,例如安卓,IOS等 提高用户体验 前后端可并行开发,大大加快了开发效率


   前后端分离的实现方式:


   1.Django后端返回json


   2.前端通过js向服务器发起ajax请求,获取数据,拿到数据后动态生成html


   3.前端服务和后端服务分开部署



相关文章
|
11月前
|
Shell 数据库 网络架构
Django+DRF 实战:从异常捕获到自定义错误信息(下)
本文详解了 Django REST Framework 中 ValidationError 的验证流程与优先级,涵盖字段内置验证、自定义验证方法、对象级验证及数据库约束,并通过实战演示如何自定义异常提示信息。
257 1
Django+DRF 实战:从异常捕获到自定义错误信息(下)
|
11月前
|
Python
Django+DRF 实战:自定义异常处理流程
本文详解DRF异常处理流程,包括默认处理机制与自定义异常处理器的实现方法。通过源码分析和实战示例,讲解如何全局捕获并统一返回错误信息,并结合日志记录与友好提示提升项目健壮性。适用于Django进阶开发。
359 4
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
1101 157
|
11月前
|
数据安全/隐私保护 网络架构 UED
Django+DRF 实战:从异常捕获到自定义错误信息
本文介绍了DRF(Django REST framework)中的异常处理机制,重点讲解了内置异常类ValidationError的使用场景与示例。同时通过用户注册功能的实战演示,展示了如何在序列化器中自定义参数校验规则,并在视图中捕获并返回结构化的错误信息,提升接口的健壮性与用户体验。
236 0
|
云安全 数据采集 安全
阿里云热门云安全产品简介:Web应用防火墙与云防火墙产品各自作用介绍
在阿里云的安全类云产品中,Web应用防火墙与云防火墙是用户比较关注的两款安全产品,二者在作用上各有侧重,共同构成了阿里云强大的安全防护体系。本文将对Web应用防火墙与云防火墙产品各自的主要作用进行详细介绍。
|
IDE 关系型数据库 MySQL
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
这篇文章是关于如何创建一个Django框架,介绍Django的项目结构和开发逻辑,并指导如何创建应用和编写“Hello, World!”程序的教程。
913 3
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
|
机器学习/深度学习 数据处理 数据库
基于Django的深度学习视频分类Web系统
基于Django的深度学习视频分类Web系统
304 4
基于Django的深度学习视频分类Web系统
|
计算机视觉 Python
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
这篇文章是关于如何使用Flask框架结合OpenCV库,通过电脑摄像头实现视频流在网页上的实时显示,并提供了单摄像头和多摄像头的实现方法。
614 2
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
|
API 数据库 开发者
深度剖析Django/Flask:解锁Web开发新姿势,让创意无限延伸!
在Web开发领域,Django与Flask如同两颗璀璨的星辰,各具特色。Django提供全栈解决方案,适合快速开发复杂应用;Flask则轻量灵活,适合小型项目和API开发。本文通过问答形式,深入解析两大框架的使用方法和选择策略,助你解锁Web开发新技能。
276 2
|
机器学习/深度学习 监控 数据挖掘
基于Django和百度飞桨模型的情感识别Web系统
基于Django和百度飞桨模型的情感识别Web系统
351 5