为什么要前后端分离?
1.前后端职责不清
2.开发效率问题,前后端互相等待
3.前端一直配合着后端,能力受限
4.pc、app、pad多端适应
5.后台开发语言和模板高度耦合,导致开发语言依赖严重
怎么做前后端分离?
1.前端:负责View和Controller层。
2.后端:负责Model层,业务处理/数据等。
前后端分离的优缺点
前后端分离的优点?
1.前端JS可以做很大部分的数据处理工作,对服务器的压力减小到最小
2.后台错误不会直接反映到前台,
3.减少开发难度
前后端分离缺点?
1.前后端学习难度增加
2.数据依赖导致文档重要性增加
3.前Django Rest Framework 是一个强大且灵活的工具包,用以构建Web API端工作量加大
4.SEO的难度加大
5.后端开发模式迁移增加成本
什么是REST ful API ?
简单的说,就是一个规范,就是一个标准,就是目前,前后端分离的最佳实践
REST ful API的优点 ?
1.轻量,直接通过http,不需要额外的协议,post/get/put/delete操作
2.面向资源,一目了然,具有自解释性
3.数据描述简单,一般通过json或者xml做数据通信
Django REST framework 是什么?
Django Rest Framework 是一个强大且灵活的工具包,用以构建Web API
RESTful API 规范是什么?
1.GET(SELECT):从服务器取出资源(一项或多项)。
2.POST(CREATE):在服务器新建一个资源。
3.PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
4.PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
5.DELETE(DELETE):从服务器删除资源。
6.HEAD:获取资源的元数据。
7.OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的
安装 djangorestframework :pip install djangorestframework==3.8.2
什么是序列化:序列化(serialization)jiang的状态信息转换为可以存储或传输形式的过程
序列化:我们把变量从内存中变成可存储或传输的过程称之为序列化
反序列化:把变量内容从序列化的对象重新读到内存里称之为反序列化
json:JSON表示出来就是一个字符串,可以被所有语言读取,也可以方便地存储到磁盘或者通过网络传输
如果我们要在不同的编程语言之间传递对象,就必须把对象序列化为标准格式,比如json
把Python对象变成一个JSON:用dumps()方法
import json
d = dict(name='Zhangsan', age=26, score=75)
json_str= json.dumps(d)
要把JSON反序列化为Python对象,用loads()方法:
json_str = '{"age": 26, "score": 75, "name": "Zhangsan"}'
json.loads(json_str)