Django(二)
一、MVT模式和两种开发模式

1、介绍
- M全拼为Model,与MVC中的M功能相同,负责和数据库交互,处理数据
- V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回响应
- T全拼为Template,与MVC中的V功能相同,负责构造要返回的html页面
2、两种开发模式
- 前后不分离
- 后台控制数据展示
- 前后端不分家,耦合严重
- 返回的是html页面,适应性、拓展性差
- 只能用于浏览器,其他终端不适用
- 前后分离

-
- 当前主流
- 后端只对数据进行处理,只提供数据
- 前端效果、页面好不好看,全由前端负责,前后端完全独立
- 解耦合
- 前后端同时开发,缩小业务上线周期
- 绝大多数情况下,后端发送json格式的参数,前端同时也是json样式数据
- 适应性、拓展性非常好
- 适用多终端运行同一套接口
二、请求与参数
1、请求参数类型
- 查询字符串传参

设置断点,debug模式下,在url中设置查询参数:

调试工具中,输入request可以查询到request对象包含的请求信息,如图:

获取查询字符串参数:request.GET,返回的是QueryDict类字典对象,支持字典的所有操作

通过request.GET['name']可获取name

查询字符串中有相同的key,查询的话会取出最后一个value,要查询多个的值话:request.GET.getlist('name')


使用getlist可以获取多个相同key的值。

- 请求体传参
- form表单传参:postman发送请求

1、json格式数据可以存放在body中,通过request.body来获取

2、需要将bytes类型转换为字符串,
3、将json格式的数据转换为字典
import json
one_str = request.body.decode('utf-8')
one_dict=json.loads(one_str)
print(one_dict)
-
- json格式传参
- 上传文件
- 路径参数
2、响应
- 视图中必须返回HttpResponse对象或者子对象
- HttpResponse(content=响应体,content_type=响应体数据类型,status=状态码)
def get(self, request): datas = { "name": "sinder", "age": 18 } # HttpResponse第一个参数往往为响应体内容 return HttpResponse(content=json.dumps(datas), content_type='application/json', status=200)
请求效果:

- JsonResponse
def get(self, request): datas = { "name": "sinder", "age": 18 } return JsonResponse(datas)
效果图:


浙公网安备 33010602011771号