当前位置: 首页 > 编程笔记 >

Django中使用locals()函数的技巧

边明煦
2023-03-14
本文向大家介绍Django中使用locals()函数的技巧,包括了Django中使用locals()函数的技巧的使用技巧和注意事项,需要的朋友参考一下

对 current_datetime 的一次赋值操作:

def current_datetime(request):
  now = datetime.datetime.now()
  return render_to_response('current_datetime.html', {'current_date': now})

很多时候,就像在这个范例中那样,你发现自己一直在计算某个变量,保存结果到变量中(比如前面代码中的 now ),然后将这些变量发送给模板。 尤其喜欢偷懒的程序员应该注意到了,不断地为临时变量和临时模板命名有那么一点点多余。 不仅多余,而且需要额外的输入。

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

def current_datetime(request):
  current_date = datetime.datetime.now()
  return render_to_response('current_datetime.html', locals())

在此,我们没有像之前那样手工指定 context 字典,而是传入了 locals() 的值,它囊括了函数执行到该时间点时所定义的一切变量。 因此,我们将 now 变量重命名为 current_date ,因为那才是模板所预期的变量名称。 在本例中, locals() 并没有带来多 大 的改进,但是如果有多个模板变量要界定而你又想偷懒,这种技术可以减少一些键盘输入。

使用 locals() 时要注意是它将包括 所有 的局部变量,它们可能比你想让模板访问的要多。 在前例中, locals() 还包含了 request 。对此如何取舍取决你的应用程序。

 类似资料:
  • 本文向大家介绍.NET中函数Main的使用技巧,包括了.NET中函数Main的使用技巧的使用技巧和注意事项,需要的朋友参考一下 引言 最近在使用pandoc这个文档转换软件,能够对各种文档进行完美的转换,比如从markdown文件转为doc,ppt,tex,odt等等各种,感兴趣的可以从Pandoc下载,对于pandoc的的文档转换,都是使用cmd中的命令来进行操作的。现在我需要把d盘的1123.

  • 本文向大家介绍JavaScript中的alert()函数使用技巧详解,包括了JavaScript中的alert()函数使用技巧详解的使用技巧和注意事项,需要的朋友参考一下 在JavaScript代码中,可以使用window对象的alert()函数来显示一段文本,从而进行程序的调试,或者向用户警示相关信息: 这一写法可以简化为直接使用alert()函数: 如果需要显示带换行的文本,可以使用\n: 如

  • 本文向大家介绍Python 内置函数globals()和locals()对比详解,包括了Python 内置函数globals()和locals()对比详解的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Python globals()和locals()对比详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python的两个内置函数,

  • Sooner or later you have some things you want to have in every single view or helper function or whatever. In PHP the way to go are global variables. However, that isn’t possible in WSGI applications

  • 问题内容: 我正在尝试为我的一个模型编写函数,以便可以通过执行以下操作创建对象: 当我编写模型时,我有: 这样可以正常工作,我可以将对象保存到数据库中,但是当我这样做时,除非我拿出函数,否则它不会拉任何东西。有任何想法吗? 问题答案: 依靠Django的内置功能并传递命名参数将是最简单的方法。 但是,如果您打算保存一些击键,建议您向类添加一个静态便捷方法,而不要弄乱初始化程序。

  • 在介绍 Django 中 ORM 模型的聚合函数之前,我们先要了解下 MySQL 中常用的聚合函数。首先同样是准备数据,使用我i们之前在第 18 小节中完成的插入 100 条数据的代码,重新执行一次: (django-manual) [root@server test]# python insert_records.py 批量插入完成 此时,连同上次操作剩余的两条会员记录,数据库中总共有 10