zoukankan      html  css  js  c++  java
  • python测试开发django-99.views视图中 locals() 函数使用

    前言

    locals() 函数是python内置函数,会以字典类型返回当前位置的全部局部变量。

    Python locals() 函数

    locals() 函数语法:locals()
    参数无,返回字典类型的局部变量。
    以下实例展示了 locals() 的使用方法:

    # 作者-上海悠悠 QQ交流群:717225969
    # blog地址 https://www.cnblogs.com/yoyoketang/
    
    a = "hello world"
    
    
    def func():
        name = "yoyo"
        age = 20
        return locals()
    
    if __name__ == '__main__':
        res = func()
        print(res)
    

    运行结果,返回字典类型的局部变量:{'age': 20, 'name': 'yoyo'}
    a变量不是func()函数的局部变量,所以并不会返回

    Django 使用 locals() 函数

    在 templates 添加 demo.html,模板中引用了3个变量:nkname,qq, city

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>demo title</title>
    </head>
    <body>
    <h1> {{ nkname}} </h1>
    <h1> {{ qq }} </h1>
    <h1> {{ city }} </h1>
    </body>
    </html>
    

    views.py 视图函数可以写成这样

    from django.shortcuts import render
    # Create your views here.
    # 作者-上海悠悠 QQ交流群:717225969
    # blog地址 https://www.cnblogs.com/yoyoketang/
    
    def demo_view(request):
        nkname = "上海-悠悠"
        city = "上海"
        qq = "283340479"
        context = {
                    "nkname": nkname,
                    "city": city,
                    "qq": qq
                }
        return render(request, "demo.html", context=context)
    

    使用locals函数后,代码可以简写成

    from django.http import JsonResponse
    # Create your views here.
    # 作者-上海悠悠 QQ交流群:717225969
    # blog地址 https://www.cnblogs.com/yoyoketang/
    
    def demo_view(request):
        nkname = "上海-悠悠"
        city = "上海"
        qq = "283340479"
        return render(request, "demo.html", locals())
    

    如果你是个喜欢偷懒的程序员并想让代码看起来更加简明,可以利用 Python 的内建函数 locals() 。它返回的字典对所有局部变量的名称与值进行映射。

  • 相关阅读:
    java实现第八届蓝桥杯生命游戏
    java实现第八届蓝桥杯生命游戏
    进程&线程(&java.lang.Thread)详解
    IDEA入门(1)--lombok和Junit generator2插件的运用
    Ecplise中Junit4单元测试的基本用法
    Java 并发工具箱之concurrent包
    JDK 8 中包列表及介绍
    java中URLEncode和URLDecode
    Mybatis中输出映射resultType与resultMap的区别
    ANSI编码方式转化为UTF-8方式
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/14968223.html
Copyright © 2011-2022 走看看