DRF概述
DRF主要用于前后端分离的项目
全称Django REST Framework,简称DRF,事实上,DRF就是一套基于Django开发的,能够帮助我们更好的设计符合REST规范的web应用的一个Django App,所以,本质上来说DRF就是一个Django的App。
REST是一种软件架构设计风格,并不是标准,也不是技术实现,它只是提供了一组设计原则和约束条件,是目前比较流行的API设计规范,用于web数据接口的设计。
例如网易云音乐的路径设计风格就是REST Framework设计风格。路径简洁,方便,快捷。
Web应用模式
一、前后端不分离
在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。
这种应用模式比较适合纯网页应用,但是当后端对接App时,App可能并不需要后端返回一个HTML网页,而仅仅是数据本身,所以后端原本返回网页的接口不再适用于前端App应用,为了对接App后端还需再开发一套接口。
二、前后端分离
前端:即客户端,负责渲染用户显示界面(例如: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.前端服务和后端服务分开部署