zoukankan      html  css  js  c++  java
  • django之视图层

    视图层是指浏览器访问的url在路由层找到了匹配关系后,django将调用相应的视图函数,视图函数将返回一个结果,该结果就是浏览器将要显示的内容。

    1.django.shortcuts中的三剑客

    HttpResponse、redirect、render

    from django.shortcuts import render, HttpResponse, redirect
    # HttpResponse
    return HttpResponse('hello world')
    
    # redirect
    return redirect('https://www.baidu.com')
    
    # render
    return render(request,'.html')
    
    # 视图函数本质上都是返回一个HttpResponse对象。
    

    render内部原理

    def ab_render(request):
        temp = Template("<h1>{{ user_dict }}{{ user_dict.username }}{{ user_dict.password }}</h1>")
        user_dict = Context({'user_dict':{'username':'jason','password':123}})
        res = temp.render(user_dict)
        return HttpResponse(res)
    

    JsonResponse

    from django.http import JsonResponse
    
    def index(request):
        my_dict = {
            'user':'yyh',
            'password':123,
        }
        return JsonResponse(my_dict)
    
    

    JsonResponse类源码

    class JsonResponse(HttpResponse):
        def __init__(self, data, encoder=DjangoJSONEncoder, safe=True,
                     json_dumps_params=None, **kwargs):
            if safe and not isinstance(data, dict):
                raise TypeError(
                    'In order to allow non-dict objects to be serialized set the '
                    'safe parameter to False.'
                )
                if json_dumps_params is None:
                    json_dumps_params = {}
                    kwargs.setdefault('content_type', 'application/json')
                    data = json.dumps(data, cls=encoder, **json_dumps_params) # ***
                    super(JsonResponse, self).__init__(content=data, **kwargs)
    

    可以看到有个默认参数safe=True,如果safe为True则只能传入dict对象否则会报错,可以通过将safe参数变为False,便可传入python的其他基本数据类型。

    json.dumps源码

  • 相关阅读:
    个人项目 源程序特征统计程序(C++)
    自我介绍+软工五问
    团队作业3——需求改进&系统设计
    Four Fundamental Operations(JS) --结对项目
    WordCount of Software Engineering
    代码开发、测试发布
    需求改进---系统设计
    综合系统开发---需求分析
    读书笔记---软件设计原则、设计模式
    自我介绍+课程六问
  • 原文地址:https://www.cnblogs.com/Ghostant/p/12163675.html
Copyright © 2011-2022 走看看