web 开发有两种开发模式:
1、前后端不分离
前端看到的效果都是由后端控制的,后端渲染页面之后给前端返回完整的页面,前端与后端的耦合度很高。
2、前后端分离
后端仅返回前端所需要的数据,至于数据怎么进行展示,由前端自己进行控制,前端与后端的耦合度很低。
在开发中有个细节要提一下考虑到 不同的人有不同的设计风格,
就像钱一样,对它的评价 “褒贬不一” ,归根结底 ,源头还是在人。
所以普遍采用的RESTful API设计风格。
Restful 风格设计关键点
1、URL地址尽量使用名词复数,不要使用动词。
2、常见的请求方式:
GET(获取数据),POST:(新增数据),PUT(修改),DELETE(删除)
3、过滤参数放在查询字符串中
4、响应的数据格式是JSON
5、响应状态码:
200(获取或修改成功),201(新增成功),204(用户删除数据成功),400(找不到资源),500(服务器错误)
REST接口开发的核心任务
开发REST API接口 视图主要 做了:
1 .将请求数据(如JSON格式)转换为模型类对象 2.操作数据库 3.将模型类对象转为响应的数据(如JSON格式)
从这三部分操作,涉及到了两个重要的概念:序列化和反序列化
1.序列化:将对象(模型类对象)转换为字典或者JSON的过程,并返回
2.反序列化:将字典或JSON转换保存到对象(模型类对象)的过程,并保存到数据库
序列化器操作
想要完成Django使用序列化器,步骤如下
1.定义模型类
2.定义序列化器类
demo:
# 设置Django运行所依赖的环境变量
import os
if not os.environ.get('DJANGO_SETTINGS_MODULE'):
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'BookProject.settings') # BookProject是自己的项目名称
from rest_framework import serializers
class User(object):
"""用户类"""
def __init__(self, name, age):
self.name = name
self.age = age
class UserSerializer(serializers.Serializer):
"""用户序列化器类"""
name = serializers.CharField()
age = serializers.IntegerField()
# 创建User对象
user = User(name='smart', age=18)
# 使用UserSerializer将user对象序列化为如下字段数据:{'name': 'smart', 'age': 18}
serializer = UserSerializer(user)
# 获取序列化之后的数据
print(serializer.data)