今日马报开奖结果

小白必看!Django 模板语言基础来啦
更新时间:2019-09-19

  为了实现模板封装和复用,提高HTML界面调试便捷性以及前后端解耦等目标,Django定义了自己的网络模板语言。

  当前介绍模板语言的官方文档已经非常完备,几乎涵盖了开发中需要用到的知识点和需要注意的问题,但同时官方文档也存在一些问题:

  本文基于官方文档系统介绍了Django模板语言的基础知识点,方便快速了解Django模板语言。

  它的设计宗旨是:模板系统旨在展示内容, 而不是程序逻辑,因此不在HTML页面中嵌入Python。

  简单的说,模板只负责渲染数据,大多数逻辑应该交给视图(view)进行处理。

  模板是一个简单的文本文件。它可以生成任何基于文本的格式(如 HTML,XML,CSV等)。除了基本的HTML标签外怎样选择温湿度计及温湿度计的工作原理。模板还包含两种额外的元素——变量和标签。

  模板中包含的变量可以被替换为变量的值,标签则被替换为相应的模板控制逻辑。示例:

  `{{ section.title }}`在模板渲染时将会被变量的值替换,for标签可以实现模板的循环渲染。

  变量实现从模板上下文字典(返回HTTP响应时传递过来的字典)中输出一个值,这是一个类似于dict的对象,包含键值对。当模板引擎遇到一个变量时,它会计算该变量,并用结果替换它。

  变量名由字母、数字字符和下划线(_)组成,但不能以下划线开头。点(.)也出现在变量中,代表属性调用,变量名中不能有空格或标点符号。

  如果结果值是可调用的,则调用该值时将不带参数,调用的结果成为新的模板值。

  当进行能覆盖字典查找的操作时,这种查找顺序可能会造成一些意想不到的行为。例如:如果试图循环一个collection .defaultdict字典对象:

  因为字典查找是首先发生的,所以这个行为会先提供一个默认值,而不是使用预期的.items方法。在这种情况下,应该首先考虑使用字典查找,而不是使用字典的属性调用。

  属性通常被解释为一个文本字符串,防止和同名的变量冲突。例如{{foo.bar}}中的属性“bar”将被解释为一个文本字符串,如果模板上下文中存在变量“bar”,则不会使用该变量的值。

  如果引用不存在的变量,模板系统将插入string_if_invalid选项的值,该选项默认设置为“”(空字符串)。

  标签在模板渲染过程中提供任意逻辑。标签可以输出内容,作为控制结构,例如“if”语句或“for”循环,从数据库获取内容,甚至允许访问其他模板标签。

  虽然上面的示例可以工作,但是要注意,大多数模板过滤器都返回字符串,因此使用过滤器进行数学比较通常不会正常工作,而长度是个例外。

  如果需要对使用的标签和自定义的标签做一份说明文档,可以使用Django提供的文档工具,详情请参考:

  通过过滤器lower变量{{ name }}变为了小写字符,通过管道符()间隔变量和过滤器来使用过滤器。

  过滤器参数中如果包含空格和标点符号,必须使用引号“”括起来,例如,要用逗号和空格连接列表,可以使用{{listjoin:, }}。

  如果变量为false或空,则使用给定的默认值。否则,使用变量的值。例如:

  将值格式化为“人类可读的”文件大小(即“13kb”、“4.1 MB”、“102字节”等)。例如:

  作者简介:单雨,90后工科男月明中秋节餐桌上最不能少的菜竟然是它!预防。伪文艺青年。目前就读于北京理工大学宇航系,喜欢研究AI,网络爬虫,微信小程序以及机器人,痴迷于Coding,睡前必撸码。