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)

效果图:

posted @ 2019-10-11 13:04  sinder2018  阅读(22)  评论(0)    收藏  举报