控制结构清单.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
控制结构清单.pdf

控制结构清单 控制结构指的是所有的那些可以控制程序流的东西 —— 条件 (⽐如 if/elif/ekse )、 for 循环、以及宏和块 类的东西。控制结构在默认语法中以 {% .. %} 块的形式 出 现。 For 遍历序列中的每项。例如,要显⽰⼀个由 users` 变量提供的⽤户列表: h1Members/h1 ul {% for user in users %} li{{ user.username |e }}/li {% endfor %} /ul 因为模板中的变量保留它们的对象属性,可以迭代像 dict 的容器: dl {% for key, value in my_dic .i eri ems() %} d {{ key |e }}/d dd{{ value |e }}/dd {% endfor %} /dl 注意⽆论如何字典通常是⽆序的,所以你可能需要把它作为⼀个已排序的列表传⼊ 到 模板或使⽤ dictsort 过滤器。 在⼀个 for 循环块中你可以访问这些特殊的变量: 变量 描述 loop .index 当前循环迭代的次数 (从 1 开始) loop .index0 当前循环迭代的次数 (从 0 开始) loop .revindex 到循环结束需要迭代的次数 (从 1 开始) loop .revindex0 到循环结束需要迭代的次数 (从 0 开始) loop .first 如果是第⼀次迭代,为 True 。 loop .last 如果是最后⼀次迭代,为 True 。 loop .length 序列中的项⽬数。 loop .c cle 在⼀串序列间期取值的辅助函数。见下⾯的解释。 在 for 循环中,可以使⽤特殊的 loop .c cle 辅助函数,伴随循环在⼀个字符串/变 量列 表中周期取值: {% for row in rows %} li class={{ loop.cycle(odd, even) }}{{ row }}/li {% endfor %} 从 Jinj a 2.1 开始,⼀个额外的 c cle 辅助函数允许循环限定外的周期取值。 更多信息 请阅读 全局函数清单 。 与 P thon 中不同,模板中的循环内不能 break 或 continue 。但你可以在迭代 中过滤序 列来跳过项⽬。下⾯的例⼦中跳过了所有隐藏的⽤户: {% for user in users if no user.hidden %} li{{ user.username |e }}/li {% endfor %} 好处是特殊的 loop 可以正确地计数,从⽽不计⼊未迭代过的⽤户。 如果因序列是空或者过滤移除了序列中的所有项⽬⽽没有执⾏循环,你可以使 ⽤ else 渲染⼀个⽤于替换的块: ul {% for user in users %} li{{ user.username |e }}/li {% else %} liemno users found/em/li {% endfor %} /ul 也可以递归地使⽤循环。当你处理诸如站点地图 类的递归数据时很有⽤。要递归地 使⽤循环,你只需要在循环定义中加上 recursive 修饰,并在你想使⽤递归的地 ⽅, 对可迭代量调⽤ loop 变量。 下⾯的例⼦⽤递归循环实现了站点地图: ul class=si emap {%- for i em in si emap recursive %} lia href={{ i em.href|e }}{{ i em. i le }}/a {%- if i em.children -%} ul class=submenu{{ loop(i em.children) }}/ul {%- endif %}/li {%- endfor %} /ul If Jinj a 中的 if 语句可⽐ P thon 中的 if 语句。在最简单的形式中,你可以测试 ⼀个变量 是否未定义,为空或 false: {% if users %} ul {% for user in users %} li{{ user.username |e }}/li {% endfor %} /ul {% end

文档评论(0)

tangtianbao1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档