Flask(8)- jinja2 模板入门(下)

简介: Flask(8)- jinja2 模板入门(下)

Flask 代码

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
# author: 小菠萝测试笔记
# blog:  https://www.cnblogs.com/poloyy/
# time: 2021/7/11 6:04 下午
# file: 6_jinja2.py
"""
from flask import Flask, render_template
app = Flask(__name__)
users = ['tom', 'jerry', 'mike']
@app.route('/3')
def index3():
    return render_template('index3.html', users=users, iterable=users)
app.run(debug=True)


浏览器的运行效果

image.png

能看到 # for 的写法并没有生效

 

if 语句


语法

jinja2 模板中,使用 {% 语句 %} 包围的语法块称为语句,jinja2 支持类似于 Python 的 if-else 判断语句,语法如下:

{% if cond %}

{% elif cond %}

{% else %}

{% endif %}

 

jinja2 模板代码

<html>
{% if a %}
    <p>a is True</p>
{% else %}
    <p>a is False</p>
{% endif %}
{% if b %}
    <p>b is True</p>
{% elif c %}
    <p>b is False, and c is True</p>
{% endif %}
</html>


Flask 代码

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
# author: 小菠萝测试笔记
# blog:  https://www.cnblogs.com/poloyy/
# time: 2021/7/11 6:04 下午
# file: 6_jinja2.py
"""
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/4')
def index4():
    a = False
    b = False
    c = True
    return render_template('index4.html', a=a, b=b, c=c)
app.run(debug=True) 


浏览器的运行效果


image.png

tests


语法

jinja2 提供的 tests 可以用来在语句里对变量或表达式进行测试,语法如下:

{% variable is test %}

 

完整的 test 请参考 https://jinja.palletsprojects.com/en/latest/templates/#builtin-tests,部分的 test 如下:

test 名称 功能
defined 变量是否已经定义
boolean 变量的类型是否是 boolean
integer 变量的类型是否是 integer
float 变量的类型是否是 float
string 变量是否是 string
mapping 变量的类型是否是字典
sequence 变量的类型是否是序列
even 变量是否是偶数
odd 变量是否是奇数
lower 变量是否是小写
upper

变量是否是大写

 

jinja2 模板代码

<html>
{% if number is odd %}
    <p> {{ number }} is odd
        {% else %}
    <p> {{ number }} is even
{% endif %}
{% if string is lower %}
    <p> {{ string }} is lower
        {% else %}
    <p> {{ string }} is upper
{% endif %}
</html>


jinja2 的模板输入

number = 404

string = 'HELLO'

 

渲染后的 html

<html>

 <p> 404 is even

 <p> HELLO is upper

</html>

 

过滤器


语法

jinja2 过滤器的是一个函数,语法如下:

{{ variable | filter }}

  • 执行函数调用 filter(varialbe),把函数返回值作为这个代码块的值
  • 暂时不举具体的栗子了,只做简单介绍,目测后面我会出详细文章讲解 jinja2

 

jinja2 模板

<html>

{{ string | upper }}

</html>

 

jinja2 的模板输入

string = 'hello'

 

渲染后的 html

<html>

HELLO

</html>

 

相关文章
|
7月前
|
安全 网络安全 数据安全/隐私保护
Flask 入门系列教程(六)
Flask 入门系列教程(六)
|
7月前
|
关系型数据库 数据库连接 数据库
Flask应用基础入门总结
Flask应用基础入门总结
77 0
|
6月前
|
API 网络架构 开发者
Flask Web开发基础【路由和Jinja2模板引擎】
# Flask Web开发基础 Flask是轻量级Web框架,专注于核心功能:请求响应、模板渲染和URL路由。本文档介绍了使用Flask的基础知识,包括命令行和Python两种运行模式,以及如何修改入口文件、端口和地址。此外,还讨论了URL路由的概念和其在Flask中的实现,展示了动态路由和多URL绑定的例子。最后,提到了Jinja2模板引擎,解释了其基本语法,并通过电影列表案例展示了如何结合Flask使用模板。
72 1
|
2月前
|
前端开发 JavaScript 数据库连接
一、Flask入门介绍
一、Flask入门介绍
44 1
|
2月前
|
Python
Flask 模板标签语言的使用
Flask 模板标签语言的使用
23 4
|
2月前
|
自然语言处理 Python
六、Flask模板使用方法
六、Flask模板使用方法
18 0
|
4月前
|
前端开发 Python
使用 Flask 3 搭建问答平台(三):注册页面模板渲染
使用 Flask 3 搭建问答平台(三):注册页面模板渲染
|
6月前
|
前端开发 JavaScript Python
flask实战-模板实现公共导航
在Flask中实现模板继承,创建基础模板`base.html`,包含公共导航菜单。子模板`movie-extends.html`继承`base.html`,并定义主要内容。视图函数`movie_extends_view`渲染`movie-extends.html`,显示电影列表。通过`extra_css`和`extra_js`块添加页面特定的样式和脚本,实现在`movie-extends.html`中应用自定义CSS样式。运行应用,访问http://127.0.0.1:1027/movie-extends,页面显示定制的电影列表样式。
93 2
|
7月前
|
数据库连接 Python
Flask 框架入门与实践:构建你的第一个 Web 应用
【5月更文挑战第18天】本文介绍了使用 Flask 框架构建第一个 Web 应用的步骤。首先通过 `pip install Flask` 安装框架,然后编写基本的 Python 代码创建应用,包括定义路由和响应。示例展示如何显示 &quot;Hello, World!&quot;,并扩展到显示用户信息的功能。利用模板(如 `index.html`)可使页面更丰富。随着学习深入,可以利用 Flask 的更多特性,如表单处理和数据库连接,来构建更复杂的 Web 应用。本文旨在激发读者对 Flask 和 Web 开发的兴趣,鼓励不断探索和实践。
150 7
|
7月前
|
Python
Flask中的模板的使用
Flask中的模板的使用
47 0