【jinja2】Python根据模板生成HTML文件并加载进QWebEngineView

本文介绍了如何使用Python的Jinja2模板引擎动态生成HTML文件,然后将其加载到QWebEngineView中,以解决QWebEngineView页面刷新导致的数据丢失问题。Jinja2是一个强大的模板引擎,可以方便地插入数据到HTML模板中。通过创建临时文件夹,修改HTML模板中的数据标识符,并正确设置echarts.js的引用路径,实现了刷新页面时数据的持久显示。
摘要由CSDN通过智能技术生成

前言

继前文Python在PyQt5中使用ECharts绘制图表中在Python程序中添加网页展示ECharts图表,和Python使用QWebEngineView时报错Uncaught ReferenceError的解决中解决页面加载过慢的问题之后,又遇到了新的问题,那就是QWebEngineView加载的页面右键会有一个reload功能,即重新加载页面,重新加载后问题就出现了,它加载的是原网页,需要通过runJavaScript重新修改option里的内容,这不够理想。于是采取新的策略,将原来写的HTML当做模板,获取数据后根据模板并将数据写入生成新的HTML文件,再加载到QWebEngineView里,这样随便怎么刷新都不会没有数据,顶多是先前的视角缩放什么的会重置,但无伤大雅。

简介

Jinja是Python下一个广泛应用的、快速、富有表现力、可扩展的模板引擎,设计思想来源于Django的模板引擎,并扩展了其语法和一系列强大的功能。

使用

  1. 新建一个临时文件夹存放生成的生成的HTML
import os

if not os.path.exists("temp"):
	os.mkdir("temp")

Python有专门生成临时文件夹或文件的库,叫tempfile,但由于HTML里导入文件的路径问题放弃使用了,如:

import tempfile

temp_folder = tempfile.mkdtemp()
file_name = "file_name.html"
with open(os.path.join(temp_folder, file_name), "w&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值