在之前的文章中我们介绍过flask调用jinja2模板的基本使用,这次我们来说一下jinjia2模板的使用

Jinja2 在其是一个 Python 2.4 库之前,被设计 为是灵活、快速和安全的。

模板仅仅是文本文件。它可以生成任何基于文本的格式(HTML、XML、CSV、LaTex 等等)。它并没有特定的扩展名, .html 或 .xml 都是可以的。

模板包含 变量 或 表达式 ,这两者在模板求值的时候会被替换为值。模板中 还有标签,控制模板的逻辑。模板语法的大量灵感来自于 Django 和 Python 。

下面是一个最小的模板,它阐明了一些基础。我们会在文档中后面的部分解释细节:

<htmllang="en">

<head>

<title>My Webpage</title>

</head>

<body>

<ulid="navigation">

{%for item in navigation %}

<li><ahref="{{ item.href }}">{{ item.caption }}</a></li>

{%endfor%}

</ul>

<h1>My Webpage</h1>

{{ a_variable }}

</body>

</html>

通过上面的模板我们能看到主要有两类标签组成{{  }}和{% %}这两类标签分别用来包含变量和表达式

如何访问变量

如果传入的变量是对象,要访问对象中的属性,可以用下面两种方式:

{{obj.prop}}

{{obj[“prop”]}

两种方式都会去检查obj对象中有没有prop这个属性以及其中的其它变量,不同的是obj.prop先检查属性,obj[“prop”]先检查变量。

赋值

使用set关键字为变量设置值

<h1>Set为变量赋值</h1>
{% set name = 'Han Mei Mei' %}
{{ name }}

运行效果

变量过滤器

变量可以通过过滤器进行修改,变量和过滤器中间用|进行分隔,使用的基本格式是{{变量|过滤器1|过滤器2}},jinja2内置了很多过滤器,通过这些内置过滤器,可以进行变量的修改,内置过滤器可以参考http://docs.jinkan.org/docs/jinja2/templates.html#builtin-filters,比如我们要把变量转成大写,可以用upper过滤器

运行效果:

语句过滤器

上面说的是用过滤器过滤一个变量,下面来说一下如何在代码块中使用过滤器,上例子:

{%filterupper%}

This text becomes uppercase

{%endfilter%}

运行效果:

is关键字进行变量判断

is关键字用来在表达式中测试变量的值是否满足某条件。比如判断变量是否是数字,就可以用

<h1>name is number? {% if name is number %}true{% else  %}false{%endif %}</h1>

运行结果:

当我们修改一下代码,成下面的格式,限制输入为int:

@app.route("/tmpl/<int:name>")
def renderTmpl(name=1):
    return render_template("hello.html",name=name)

再次运行:

Flask内置的is可用的函数参考 : http://docs.jinkan.org/docs/jinja2/templates.html#builtin-tests

欢迎关注“挨踢学霸”同名公众号, 回复jinjia2-1获取源码下载地址。

flask中的jinjia2模板引擎详解1相关推荐

  1. flask中jinjia2模板引擎详解3

    接上文 模板继承 Jinji2中的模板继承是jinjia2比较强大的功能之一. 模板继承可以定义一个父级公共的模板,把同一类的模板框架定义出来共享. 这样做一方面可以提取共享代码,减少代码冗余和重复的 ...

  2. Flask 中的Jinja2模板引擎

    Flask 中的Jinja2模板引擎 在 Web 项目中,前端的显示效果是通过 HTML 语言来实现的,后端的视图函数将数据或模板文件返回给前端. 前端接收到后端返回的结果后,需要通过模板引擎来渲染页 ...

  3. Flask HTML模板引擎详解

    模板引擎说明: 模板文件就是按照一定的规则书写的展示效果的HTML文件模板引擎就是负责按照指定规则进行替换的工具模板引擎选择jinja2. 一.渲染模板的方法 1.将渲染的模板进行返回 1 rende ...

  4. art-template模板引擎详解

    1. 模板引擎 art-template中文文档:https://www.kancloud.cn/lanju/art-template/1500276 1.1 Ajax 项目中存在的问题 数据和HTM ...

  5. JavaScript模板引擎详解

    JavaScript模板引擎是一种用于生成HTML.XML和其他文本格式的工具,它将特定的模板语法转换为相应的文本输出,通常用于前端开发中动态生成页面内容.下面是一个JavaScript模板引擎的详细 ...

  6. Thymeleaf模板引擎详解

    Thymeleaf 是一个流行的模板引擎,该模板引擎采用 Java 语言开发.能够处理html xml css cs等内容.此外,在Java体系下,还有类似的模板引擎如jsp,FreeMarker等. ...

  7. thymeleaf模板引擎详解1

    做了几年的java web开发,我使用最多的模板引擎应该是freemarket和JSP了,不过最近公司开始引入springboot作为开发的框架,这让我接触到了一个新的模板引擎,也就是thymelea ...

  8. php ci框架 模板引擎,详解CodeIgniter框架实现的整合Smarty引擎DEMO

    CodeIgniter框架实现的整合Smarty引擎DEMO示例 本文实例讲述了CodeIgniter框架实现的整合Smarty引擎.分享给大家供大家参考,具体如下: Smarty的模板机制很强大,一 ...

  9. EasyJWeb Tools中代码自动生成引擎详解

    在EasyJWeb-0.6.0推出来以后,很多网友对其中的代码生成部分非常感兴趣,并来信问了一些如何使用easyjwebtools.如何支持多表生成.生成页面的定制.业务逻辑的定制等很多问题.下面以我 ...

  10. twig模板引擎详解(下集:开发者篇)【twig模板引擎中文使用教程】

    上集重点介绍了twig模板的使用,供模板设计者阅读,下集供php开发者阅读,讲解如何调用和扩展twig,这一篇安装和采用版本将衔接上集内容. Twig_Environment: 该类的实例是twig模 ...

最新文章

  1. 发条js调试工具_小工具大帮手,利用 @open-node/antman 实现 node.js 进程线上调试,无须重启...
  2. 霍夫变换直线检测基本原理
  3. js中用到的正则表达式
  4. bash特性之四、五
  5. 轻量级锁_并发编程实战05:锁的状态
  6. ajax封装 使用,AJAX封装类使用指南
  7. [UVA315]Network(tarjan, 求割点)
  8. C#中通过代码控制IIS服务重启
  9. linux和Windows之间互传文件
  10. 多面集的表示定理 (Representation / Resolution / Caratheodory theorem of polyhedral Sets)
  11. Python中的装饰器及@用法详解
  12. 自己怎么制作地图,如何绘制电子版地图?
  13. dnspod.cn 动态域名客户端
  14. 机器学习之加州房价预测(一)
  15. 定位弹窗软件----找到真凶并做后续防御
  16. 【温故而知新-Javascript】使用 Ajax
  17. 迅时MX8(FXO)8口语音网关连接Elastix+服务器配置
  18. #Windows server 2019将辅助域控升级为主域控
  19. 模拟HTTP请求, POST方法(附源码)
  20. 巴纳姆效应心理 学对号入座 营销中惯用的营销心理学

热门文章

  1. 根据身份证判断男女(通用)
  2. error: passing ‘const xxx’ as ‘this’ argument discards qualifiers [-fpermissive]的解决方案
  3. 数据库数据模型理解 概念数据模型 逻辑数据模型 物理数据模型区别和联系
  4. 08.音频系统:第006课_音频系统HAL分析:第001节_HAL之框架
  5. Python 玩转数据 3 - NumPy ndarray Array Indexing, Slicing, Striding, View Subarray,Copy Subarray
  6. Django 使用 squashmigrations 合并 migration 文件
  7. 微信中扫一扫二维码唤起手机默认浏览器的实现方式
  8. 各层电子数排布规则_电子层排布,电子的排布规律
  9. 如何制作一寸、二寸、六寸照片。以后不用再去照相馆了!!! 转~版本更新...
  10. 【地理坐标系、大地坐标系与地图投影与重投影详解】