Flask向Jinja2模板中传入数据

Flask 入门教程:Jinja2模板用法 在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简单的请求。实际上,视图函数有两个作用:处理业务逻辑和返回响应内容。在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本。本节学到的模板,它的作用即是承担视图函数的另一个作用,即返回响应内容。 阅读详情

目录

可以传入哪些数据?

传入原子类型数据

传入列表、元组、字典和集合

传入函数

传入对象实例


可以传入哪些数据?

可以将Python中的原子类型、列表、元组、集合、字典、方法、函数甚至对象实例。。。传入到html文件中使用。

传入原子类型数据

使用flask模块中的render_template函数将python数据传入到html中。

下面的例子传入一个整型数据和一个浮点型数据。

html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>show Jinja2 function</title>
</head>
<body>
    <p>atom int: {{demo_int}}</p>
    <p>atom float: {{demo_float}}</p>
</body>
</html>

HTML文件中的8、9行分别接收两个传入的数据(整型和浮点型)。

Python脚本:

import webbrowser
from flask import Flask, render_template

app = Flask(__name__)

@ app.route("/")
def index():
    atom_int = 23
    atom_float = 6.7
    return render_template("show.html",
                           demo_int=atom_int,
                           demo_float=atom_float)


if __name__ == '__main__':
    host = "0.0.0.0"
    port = "8890"
    url = "http://127.0.0.1:%s" % port

    webbrowser.open(url)
    app.run(host=host, port=port)

使用关键字参数将Python中的数据发送给HTML中定义好的“变量”。

指定8890端口并使用webbrowser.open()打开网页。

运行结果:

传入列表、元组、字典和集合

html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>show Jinja2 function</title>
</head>
<body>
    <p>list: {{demo_list}}</p>
    <p>tuple: {{demo_tuple}}</p>
    <p>dict: {{demo_dict}}</p>
    <p>set: {{demo_set}}</p>
</body>
</html>

8 ~ 11行分别接收传入的列表、元组、字典、集合。

python脚本:

import webbrowser
from flask import Flask, render_template

app = Flask(__name__)

@ app.route("/")
def index():
    my_list = ["Python", "C", "Java", "HTML", "CSS", "Go"]
    my_tuple = (6, 7, 23)
    my_dict = {"China": "Beijing", "Japan": "Tokyo"}
    my_set = {"main", "reflect", "package"}
    return render_template("show.html",
                           demo_list=my_list,
                           demo_tuple=my_tuple,
                           demo_set=my_set,
                           demo_dict=my_dict)


if __name__ == '__main__':
    host = "0.0.0.0"
    port = "8890"
    url = "http://127.0.0.1:%s" % port
    webbrowser.open(url)

    app.run(host=host, port=port)

原理同上。只是将传入的数据做了改动。

运行结果:

传入函数

可以将函数传入到html中。也可在html中调用传入的函数。

html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>show Jinja2 function</title>
</head>
<body>
    <p>func1: {{func1}}</p>
    <p>func2(): {{func2("In html file use python function. Interesting.")}}</p>
</body>
</html>

第8行接收一个函数。第9行接收该函数后并调用该函数。

⚠️注意:html中调用接收的python函数时一定要符合python语法规则(即参数数量、配型匹配)

python脚本:

import webbrowser
from flask import Flask, render_template

app = Flask(__name__)

def fun(message):
    return message

@ app.route("/")
def index():
    return render_template("show.html",
                           func1=fun,
                           func2=fun)


if __name__ == '__main__':
    host = "0.0.0.0"
    port = "8890"
    url = "http://127.0.0.1:%s" % port
    webbrowser.open(url)

    app.run(host=host, port=port)

在这个例子中用同一个函数fun传入到html中定义的两个“变量”func1和func2。

运行结果:

可以看出在html中接收一个函数但不调用的时候,页面上呈现该函数对象在服务端的内存地址。

接收函数并调用的情况下,页面上呈现函数返回结果。

传入对象实例

可以将对象实例传入模板中,甚至可以调用对象实例的方法。

html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>show Jinja2 function</title>
</head>
<body>
    <p>instance: {{instance}}</p>
    <p>method: {{instance.demo()}}</p>
</body>
</html>

Python脚本:

import flask
import webbrowser

app = flask.Flask(__name__)

class Demo(object):
    def demo(self):
        return "Inner Demo class demo method."

@ app.route("/")
def index():
    d = Demo()
    return flask.render_template("show.html", instance=d)

if __name__ == '__main__':
    host = "0.0.0.0"
    port = "7443"
    url = "http://127.0.0.1:%s" % port

    webbrowser.open(url)
    app.run(host=host, port=port)

运行结果:

使用Jinja2模板进行大数据处理 通过将数据传递给模板并使用Jinja2的语法,我们可以生成动态内容,从而实现各种大数据处理需求。Jinja2是一个功能强大的模板引擎,它可以用于生成动态内容,特别适用于大数据处理。在本文中,我们将探讨如何使用Jinja2模板来处理大数据,并提供相应的源代码示例。通过运行上述代码,我们将生成一个HTML页面,其中包含指定的标题和数据列表。一旦模板加载完成,我们就可以为模板提供数据,并渲染生成最终的输出。在模板文件中,我们可以使用Jinja2的语法来处理数据。方法将数据传递给模板,并生成最终的输出。 阅读详情

相关推荐

PCB 传输线教程(上):基于 Polar Si9000 与嘉立创工艺的传输线设计

理论线宽是W1,但在实际制作时,铜线顶部会有部分被刻蚀掉,表面被刻蚀后的宽度表示为W2,一般取经验值W2=W1-1,单位为 mil,Si9000 里面默认也是采用 W1,W2 相差 1 mil 的方式进行计算。表面阻抗结构就是简单的在一个平面上走信号线,以另外一个平面为地平面,信号线所在平面不进行铺铜(或铺铜间距大到可以忽略不计),这是最简单的一种结构,只需要知道介质层的厚度和介电常数、信号线厚度就可以进行阻抗计算。这个也是经验值,一般保持默认,或者可以填入 C1 相同的值(即忽略堆积)。

Surrea1的博客 1万+

Flask - Jinjia2

一、Jinjia2初级 Flask中默认的模板语言是Jinja2! 后端定义几个字符串,用于传递到前端: STUDENT = {'name': 'jiumo', 'age': 16, 'gender': '男'} STUDENT_LIST = [ {'name': 'jiu', 'age': 17, 'gender': '中'}, {'name': 'mo', 'ag...

diaodu8047的博客 345

【保姆级教程/代码】GNSS反演大气可降水量(Precipitable Water Vapor, PWV)

GPS精密单点定位(PPP)是一种采用精密卫星星历和卫星钟差进行非差单点定位的方法,在观测过程中采用双频载波相位观测法以确保高精度定位精度。本文利用PPP技术来求解天顶对流层延迟(zenith tropospheric delay,ZTD)。ZTD由湿延迟(ZWD)和干延迟(ZHD)组成,其中占比90%的ZHD与地面测站高程、大气压和测站纬度等参数有良好的相关性,可以通过Saastamoinen模型精确求出;

weixin_43910227的博客 2925

06_Flask之jinja2模板引擎_传参_控制语句_模板继承

文章目录1 什么是模板引擎?2 为什么要有模板引擎?3 在`Flask`如何使用模板引擎?3.1 模板引擎返回对比视图函数直接返回html代码3.2 修改默认模板引擎寻找路径3.3 模板引擎传参实例1 k=v:实例2 dict{k1:v1,k2:v2...}实例3 dict{k1:v1 ... dict{km:vm} }:关键词:3.4 模板中使用`url_for()`实例:关键词:3.5 jinja2中控制语句1 jinja2中逻辑语句/if语句实例:2 jinja2中循环语句/for循环2.1 列表循

coderge's 优快云 Blog. 832

避坑指南:CentOS7.9安装Python3.8.16后yum报错的快速修复方法

本文详细解析了在CentOS7.9系统安装Python3.8.16后导致yum报错的原因,并提供了快速修复方法。通过修改yum配置文件指向Python2解释器,以及使用alternatives工具管理多版本Python,有效解决兼容性问题。同时推荐使用虚拟环境隔离开发环境,避免影响系统稳定性。

weixin_26908317的博客 495

【点云语义分割】Ubuntu20.04下RangeNet++环境配置与实战指南

本文详细介绍了在Ubuntu20.04系统下配置和运行RangeNet++点云语义分割模型的完整实战指南。内容涵盖从Cuda、cudnn到TensorRT的深度学习环境搭建,RangeNet++源码编译的详细步骤与常见问题解决,以及如何运行首个分割Demo并可视化结果。最后,还探讨了处理自定义点云数据格式和进行性能调优的进阶技巧,旨在帮助开发者和研究者快速部署并应用这一先进的点云语义分割技术。

rnn9storyteller的博客 516

Jinja2模板注入

Jinja2模板注入常见的利用方式及简单绕过方法

你也听过我的故事? 2172

ArcGIS插值可视化气象数据

前言 地图底图的制作和气象数据的预处理见我上两篇博客 ArcGIS精美中国地图制作(详解) python处理日值气象数据 在前面我们已经将日值的地温数据处理成了年均地温,添加了站点经纬度坐标并导出为excel格式。 得到如下数据: 导入数据 在Arcmap中 文件-添加XY数据 将年均地温和站点位置数据导入。 注意:excel表格的格式要另存为97-2003工作簿形式,否则会有"arcgi...

江北20190411的博客 2万+

flask学习

flask学习

wanan的博客 435

自助结账商品检测(Scanned Item Detection)——基于YOLOv8的RPC数据集实战

RPC数据集是由中国科学院自动化研究所发布的零售商品结账检测公开数据集,广泛用于自助结账和零售场景下的目标检测与识别。YOLOv8是YOLO系列最新版本,由Ultralytics推出,继承了YOLO家族的高效快速和高准确性,适用于实时检测场景。本文系统介绍了基于YOLOv8的RPC数据集自助结账商品检测方案,涵盖数据准备、训练、推理及UI界面设计。未来,可结合多模态感知、RFID融合技术,打造更加智能和稳定的自助结账系统。

YOLO 250

杰理外挂flash使用教程(四):制作fat32文件系统格式的资源文件

本文档提供了FAT文件系统镜像生成与资源打包的完整指南,包含两种实现方案:推荐的WSL/Ubuntu环境方案和Windows原生方案。详细说明了从创建空白镜像、格式化、资源文件复制到最终打包为设备可用的res.bin文件的完整流程,并对比了FAT32与FAT16的特性差异。文档还包含关键文件说明、使用注意事项和典型应用场景,适用于嵌入式系统开发、固件升级等场景。

qq_42014563的博客 1339

Flask JInja2

Jinja2 在动态Web程序中,视图函数返回的HTML数据往往需要根据相应的变量(比如查询参数)动态生成。当HTML代码保存到单独的文件中时,我们没法再使用字符串格式化或拼接字符串的方式来在HTML代码中插入变量,这时我们需要使用模板引擎(template engine)。借助模板引擎,我们可以在HTML文件中使用特殊的语法来标记出变量,这类包含固定内容和动态部分的可重用文件称为模板(templ...

Aoki的博客 803

第六:Charles抓包-苹果手机抓包

【代码】第六:Charles抓包-苹果手机抓包。

欢迎来到本博客! 1658

【Flask】Jinja2模板的使用及控制语句

Jinja2模板 在前面的实例中,视图函数的主要作用是生成请求的响应,这是最简单请求.实际上,视图函数有两个作用: 处理业务逻辑 返回响应内容 在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本. 模板其实是一个包含响应文本的文件,其中用占位符(变量)表示动态部分,告诉模板引擎其具体的值需要从使用的数据中获取 使用真实值替换变量,再返回最终得到的字符串,这个过程称为’渲染’ Flask是使用Jinja2这个模板引擎来渲染模板 使用模板的好处 视图函数只负责业务逻辑和数据处理(

python全栈 960

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

flask 模板 php,Flask 模板系统

模板基本数据类型可以执行python语法,如:dict.get(), list['xx']比django 更加亲近于 python传入函数-django,自动执行-flask,不自动执行,需要自己加" () "了简单的示例def func1(arg):return "hello" + arg@app.route("/index")def index():return render_templ...

weixin_42375011的博客 531

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Flask 实现分页展示数据(简单套路)

Flask 实现分页展示数据 最简单套路,其中包括jinja2语法知识(求数据列表长度,for循环等)

湫兮如风i的博客 2524

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

flask--渲染Jinja模板与传入模板变量

1. 模板简介 模板是一个web开发中必备的模块,因为我们在渲染一个网页的时候,并不只是渲染了一个纯文本字符窜,而是渲染一个有富文本标签的页面,这个时候我们就需要用到模板了。在flask中,配套的模板是Jinja2,Jinja2的作者也是flask的作者。 2. flask中渲染模板 在flask中,如果我们需要渲染一个模板,那么我们就需要用到render_template这个方法了。 在我们新建...

xujin0的博客 3449

Flask 中的Jinja2模板引擎

Flask 中的Jinja2模板引擎 在 Web 项目中,前端的显示效果是通过 HTML 语言来实现的,后端的视图函数将数据或模板文件返回给前端。 前端接收到后端返回的结果后,需要通过模板引擎来渲染页面,控制显示的效果。 在 Flask 框架中,使用的模板引擎是 Jinja2 。 一、模板简介 在后端,视图函数的主要作用是根据请求返回响应。 返回的响应内容可以是数据,前端获取数据后自行...

weixin_43790276的博客 4345

Flask中的Jinja2模板使用

模板@(Flask)视图函数作用:生成请求的响应。一般情况下,请求会改变程序的状态,这种改变相应的需要在视图函数中产生。两种逻辑的处理 业务逻辑 表现逻辑 两种逻辑不分离将会使得代码难以理解和维护。Jinja2模板引擎模板是包含响应文本的文件。动态部分用占位变量表示,具体的值在请求的上下文中才能知道。渲染:使用真实值替代变量,返回最终的响应字符串。Flask用的是强大的Jinja2模板引擎。最简单的

Bing's Blog 5694

Flask基础2-Jinja2模板

jinja2模板,jinja2继承,flask基础,flask学习

m0_73426548的博客 1336

Flask渲染Jinja2模板

1. 模板简介 模板是一个web开发必备的模块。因为我们在渲染一个网页的时候,并不是只渲染一个纯文本字符串,而是需要渲染一个有富文本标签的页面。这时候我们就需要使用模板了。在Flask中,配套的模板是Jinja2,Jinja2的作者也是Flask的作者。这个模板非常的强大,并且执行效率高。以下对Jinja2做一个简单介绍! 1.1 Flask渲染Jinja模板: 要渲染一个模板,通过render_template方法即可,以下将用一个简单的例子进行讲解: from flask import Flask,re

bbj1030的博客 1327

Flask 第二章 Jinja2模板

过滤器本质上就是一个函数。如果在模版中调用这个过滤器,那么就会将这个变量的值作为第一个参数传给过滤器这个函数,然后函数的返回值会作为这个过滤器的返回值。需要使用到一个装饰器: @app.template_filter(‘过滤器名称’)#将模版设置为自动加载模式value=value.replace("旧值",'新值')< p > 使用自定义过滤器:{{内容值|count}} 使用自定义过滤器:{{内容值|count}}

qq_39286483的博客 722

flask之jinja2入门

一、宏 用于提高代码复用率 最简单封装好的对象 1、宏的定义 使用macro定义 {% macro func1(label='',type='text',name='') %} <label>{{label}}</label><input type="{{type}}" name="{{name}}"> {% endmacro %} 2...

changfcqxhy的博客 1767

Flask Jinja2模板引擎

模板 在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简单的请求。实际上,视图函数有两个作用:处理业务逻辑和返回响应内容。在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本。而模板引擎的作用是承担视图函数的了一个作用,即返回响应内容。 模板其实是一个包含响应文本的文件,其中用占位符(变量)表示动态部分,告诉模板引擎其具体的值需要从使用的数据中获取; 使用真实值...

PininQ的博客 3054

Flask Jinja2 模板中的变量和过滤器

Flask Jinja2 模板中的变量和过滤器 Flask 可以在视图函数中返回模板文件,模板引擎默认使用的是 Jinja2 。 通常,返回的 Jinja2 模板文件并不是一个静态的页面,而是同时有静态部分和动态部分。 静态部分可以硬编码写死,动态部分需要通过变量传值或过滤器处理等方式来实现。 一、向 Jinja2 模板文件中传入变量 在 Flask 的视图函数中,将变量的值传递给模板文...

weixin_43790276的博客 3619

Jinja2模板与模板继承

Jinja2 两个概念: Jinja2:是 Python 下一个被广泛应用的模板引擎,是由Python实现的模板语言,他的设计思想来源于 Django 的模板引擎,并扩展了其语法和一系列强大的功能,其是Flask内置的模板语言。 模板语言:是一种被设计来自动生成文档的简单文本格式,在模板语言中,一般都会把一些变量传给模板,替换模板的特定位置上预先定义好的占位变量名。 渲染模版函数 Flask...

weixin_43250623的博客 3326
上一篇: 稀疏矩阵(Python实现)
下一篇: Git 撤销修改
TCatTime
博客等级 码龄9年 400粉丝 256原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值