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



相关文章
|
15天前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
30 3
|
21天前
|
移动开发 开发者 HTML5
构建响应式Web界面:Flexbox与Grid的实战应用
【10月更文挑战第22天】随着互联网的普及,用户对Web界面的要求越来越高,不仅需要美观,还要具备良好的响应性和兼容性。为了满足这些需求,Web开发者需要掌握一些高级的布局技术。Flexbox和Grid是现代Web布局的两大法宝,它们分别由CSS3和HTML5引入,能够帮助开发者构建出更加灵活和易于维护的响应式Web界面。本文将深入探讨Flexbox和Grid的实战应用,并通过具体实例来展示它们在构建响应式Web界面中的强大能力。
34 3
|
15天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
102 44
|
3天前
|
缓存 安全 网络安全
HTTP/2与HTTPS在Web加速中的应用
HTTP/2与HTTPS在Web加速中的应用
|
6天前
|
SQL 安全 前端开发
PHP与现代Web开发:构建高效的网络应用
【10月更文挑战第37天】在数字化时代,PHP作为一门强大的服务器端脚本语言,持续影响着Web开发的面貌。本文将深入探讨PHP在现代Web开发中的角色,包括其核心优势、面临的挑战以及如何利用PHP构建高效、安全的网络应用。通过具体代码示例和最佳实践的分享,旨在为开发者提供实用指南,帮助他们在不断变化的技术环境中保持竞争力。
|
11天前
|
API 数据库 开发者
深度剖析Django/Flask:解锁Web开发新姿势,让创意无限延伸!
在Web开发领域,Django与Flask如同两颗璀璨的星辰,各具特色。Django提供全栈解决方案,适合快速开发复杂应用;Flask则轻量灵活,适合小型项目和API开发。本文通过问答形式,深入解析两大框架的使用方法和选择策略,助你解锁Web开发新技能。
27 2
|
16天前
|
前端开发 安全 应用服务中间件
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第26天】随着互联网的快速发展,前端性能调优成为开发者的重要任务。本文探讨了HTTP/2与HTTPS在前端性能优化中的应用,介绍了二进制分帧、多路复用和服务器推送等特性,并通过Nginx配置示例展示了如何启用HTTP/2和HTTPS,以提升Web应用的性能和安全性。
17 3
|
16天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
29 2
|
16天前
|
前端开发 JavaScript API
前端框架新探索:Svelte在构建高性能Web应用中的优势
【10月更文挑战第26天】近年来,前端技术飞速发展,Svelte凭借独特的编译时优化和简洁的API设计,成为构建高性能Web应用的优选。本文介绍Svelte的特点和优势,包括编译而非虚拟DOM、组件化开发、状态管理及响应式更新机制,并通过示例代码展示其使用方法。
32 2
|
16天前
|
测试技术 持续交付 PHP
PHP在Web开发中的应用与最佳实践###
【10月更文挑战第25天】 本文将深入探讨PHP在现代Web开发中的应用及其优势,并分享一些最佳实践来帮助开发者更有效地使用PHP。无论是初学者还是有经验的开发者,都能从中受益。 ###
38 1

热门文章

最新文章