【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.前端服务和后端服务分开部署



相关文章
|
10月前
|
前端开发 算法 API
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
|
存储 监控 安全
如何在Python Web开发中确保应用的安全性?
如何在Python Web开发中确保应用的安全性?
639 157
|
8月前
|
Shell 数据库 网络架构
Django+DRF 实战:从异常捕获到自定义错误信息(下)
本文详解了 Django REST Framework 中 ValidationError 的验证流程与优先级,涵盖字段内置验证、自定义验证方法、对象级验证及数据库约束,并通过实战演示如何自定义异常提示信息。
203 1
Django+DRF 实战:从异常捕获到自定义错误信息(下)
|
8月前
|
Python
Django+DRF 实战:自定义异常处理流程
本文详解DRF异常处理流程,包括默认处理机制与自定义异常处理器的实现方法。通过源码分析和实战示例,讲解如何全局捕获并统一返回错误信息,并结合日志记录与友好提示提升项目健壮性。适用于Django进阶开发。
307 4
|
9月前
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。该方案设计目标是实现通用性,适用于各种网络架构和业务场景。
300 1
|
10月前
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。
392 7
|
前端开发 JavaScript
探索现代Web应用的微前端架构
【10月更文挑战第40天】在数字时代的浪潮中,Web应用的发展日益复杂多变。微前端架构作为一种新兴的设计理念,正逐步改变着传统的单一前端开发模式。本文将深入探讨微前端的核心概念、实现原理及其在实际项目中的应用,同时通过一个简单的代码示例,揭示如何将一个庞大的前端工程拆分成小而美的模块,进而提升项目的可维护性、可扩展性和开发效率。
|
8月前
|
数据安全/隐私保护 网络架构 UED
Django+DRF 实战:从异常捕获到自定义错误信息
本文介绍了DRF(Django REST framework)中的异常处理机制,重点讲解了内置异常类ValidationError的使用场景与示例。同时通过用户注册功能的实战演示,展示了如何在序列化器中自定义参数校验规则,并在视图中捕获并返回结构化的错误信息,提升接口的健壮性与用户体验。
185 0
|
云安全 数据采集 安全
阿里云热门云安全产品简介:Web应用防火墙与云防火墙产品各自作用介绍
在阿里云的安全类云产品中,Web应用防火墙与云防火墙是用户比较关注的两款安全产品,二者在作用上各有侧重,共同构成了阿里云强大的安全防护体系。本文将对Web应用防火墙与云防火墙产品各自的主要作用进行详细介绍。
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
384 19