• Django学习笔记(19)HttpResponse/JsonResponse /render /redirect/Http404


    导入模块

    1 from django.shortcuts import HttpResponse, render, redirect
    2 
    3 from django.http import JsonResponse,Http404

     

    1.HttpResponse对象

    Django服务器接收到客户端发送过来的请求后,会将提交上来的这些数据封装成一个 HttpRequest 对象传给视图函数。那么视图函数在处理完相关的逻辑后,也需要返回一个响应给浏览器。而这个响应,我们必须返回 HttpResponseBase 或者他的子类的对象。而 HttpResponse 则是 HttpResponseBase 用得最多的子类。
     
    简单点说:它是作用是内部传入一个字符串参数,然后发给浏览器,浏览器只有接收HttpResponse对象才能进行浏览器解析
    例如:
    1 def index(request):
    2     # 业务逻辑代码
    3     return HttpResponse("OK")

    2.render

    render方法可接收三个参数,一是request参数,二是待渲染的html模板文件,三是保存具体数据的字典参数。

    它的作用就是将数据填充进模板文件,最后把结果返回给浏览器。与jinja2类似。

    例如:

    1 def index(request):
    2     # 业务逻辑代码
    3     return render(request, "index.html", {"name": "monicx", "hobby": ["reading", "blog"]})

    3.redirect

    接受一个URL参数,表示让浏览器跳转去指定的URL.,即重定向

    1 def index(request):
    2     # 业务逻辑代码
    3     return redirect("https://www.baidu.com")

    4.JsonResponse

    class JsonResponse(data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None,**kwargs)

    这个类是HttpRespon的子类,它主要和父类的区别在于:

    1.它的默认Content-Type 被设置为: application/json

    2.第一个参数,data应该是一个字典类型,当 safe 这个参数被设置为:False ,那data可以填入任何能被转换为JSON格式的对象,比如list, tuple, set。 默认的safe 参数是 True即默认传入data为字典类型,如果你传入的data数据类型不是字典类型,那么它就会抛出 TypeError的异常。

    3.json_dumps_params参数是一个字典,它将调用json.dumps()方法并将字典中的参数传入给该方法。设置为{'ensure_ascii': False}则表示汉字不会被转化成ascii

    主要用途:Django在前后端分离开发,实现后端向前端提供接口,通过JsonResponse对象将接口返回的json数据传递给前端

    例如:

    1     def delete(self,request):
    2         id = request.GET.get('id')
    3         models.Case.objects.filter(id=id).update(is_delete=True)
    4         response = {'code': 0, 'msg': '成功'}
    5         return JsonResponse(response, json_dumps_params={'ensure_ascii': False})  # 汉字不被转化

    5.Http404

      展示404页面

  • 相关阅读:
    实验 6:OpenDaylight 实验——OpenDaylight 及 Postman 实现流表下发
    实验 4:Open vSwitch 实验——Mininet 中使用 OVS 命令
    实验 3:Mininet 实验——测量路径的损耗率
    第一次个人编程作业
    实验 2:Mininet 实验——拓扑的命令脚本生成
    实验 1:Mininet 源码安装和可视化拓扑工具
    第一次博客作业
    第一次个人编程作业
    第一次博客作业
    需求分析报告
  • 原文地址:https://www.cnblogs.com/bugoobird/p/13416630.html
Copyright © 2020-2023  润新知