Python使用jinja2模块从Oracle数据库中读取表数据并保存到html中

Python+Flask+Jinja2模板引擎语法+html获取python数据 利用render_template()方法传入模板和html所需要的数据username,可以在html中运用jinja2模板引擎的{{}}语法进行展示数据: 效果: 获取单个列表元素的jinja2语法:可以使用列表的取值方式:也可以使用jinja2提供的语法取值: 效果: 获取单个字典单个value值的jinja2语法:列表取值:jinja2语法: 2.for循环语句: 阅读详情

1、创建jinja2模块

<html>
<head>
    <style type="text/css">
        .a {
              float: left;
              list-style:none; 
              margin:0 10px;
        }
		.b {
              float: none;
              list-style:none; 
              margin:0 10px;
        }
        div {
              display: none;
        }

		.c {
              float: left;
              list-style:none; 
              margin:0 10px;
        }
    </style>
</head>
<body>
<h1>Select In Oracle</h1>
<ul class='c'>
				
				<li class='a'><b>{{titleDesc[0]}}</b></li>
				
				</br>
				
				{% for row in result %}
				<li class='b'> {{row[0]}}</li>
				{% endfor %}
</ul>


<ul class='c'>
				
				<li class='a'><b>{{titleDesc[1]}}</b></li>
				
				</br>
				
				{% for row in result %}
				<li class='b'> {{row[1]}}</li>
				{% endfor %}
</ul>

<ul class = 'c'>
				
				<li class='a'><b>{{titleDesc[2]}}</b></li>
				
				</br>
				
				{% for row in result %}
				<li class='b'> {{row[2]}}</li>
				{% endfor %}
</ul>

</body>
</html>

2、Python中引用jinja2模块

import cx_Oracle
import webbrowser
import os
import jinja2
"""创建一个获取html内容的函数"""
def render(tplPath,**kvargs):
    if os.name == 'nt':
        currPath = '.\\'
    else:
        currPath = './'

    path,fileName = os.path.split(tplPath)
    return jinja2.Environment(
        loader=jinja2.FileSystemLoader(path or currPath)
    ).get_template(fileName).render(**kvargs)

"""创建一个oracle连接"""
conn = cx_Oracle.connect('scott/scott@TNS_LISSEN')
cursor = conn.cursor()
selectSql = 'select * from scott.t1'
titleDesc = []

cursor.execute(selectSql)

descLists = cursor.description
result = cursor.fetchall()

for desc in descLists:
    titleDesc.append(desc[0])

"""渲染数据"""
content = render('test.html',titleDesc=titleDesc,result=result)

"""将渲染过的数据写入到testJinja2.html中显示出来"""
html = 'testJinja2.html'
with open(html,'w') as fObj:
    fObj.write(content)
    fObj.close()

webbrowser.open(html,new=1)

cursor.close()
conn.close()

上述Python代码还可以重构,简单记录下…

3、结果查询

web中显示
在这里插入图片描述

oracle中表数据

SCOTT@TNS_LISSEN>select * from t1;

 ID NAME            LOC
--- --------------- --------------------
  1 xiao zhang      nanchang
  2 xiao wang       shanghai
  3 xiao long       tianjing

HTML、CSS这一块不是很熟悉,以后再进行修改…

Python爬虫实战:把Scrape Center SSR1的电影数据自动存进Excel和数据库(Pandas + SQLite教程) 本文详细介绍了如何使用Python构建一个完整的爬虫数据管道,从Scrape Center SSR1抓取电影数据,并通过Pandas进行清洗和结构化处理,最终存储到Excel和SQLite数据库。教程涵盖了环境配置、数据解析、多存储方案实现以及数据应用实践,帮助开发者掌握端到端的数据处理流程。 阅读详情

相关推荐

JupyterLab原生SQL接口:内核级数据库直连与交互式分析工作流

SQL作为数据查询的基础语言,其本质是人与数据之间的思考媒介,而非仅限命令行的操作技能。传统SQL工具与Python分析环境割裂,导致上下文切换频繁、元数据不可见、调试链路断裂。真正的交互式SQL分析需依托JupyterLab内核级集成,实现连接复用、变量互通、自动补全与执行计划内联解析。基于jupysql与SQLAlchemy深度定制的方案,支持多数据库直连、参数化查询、跨引擎联合计算及元数据感知,显著提升分析师、算法工程师的数据探索效率。本文聚焦JupyterLab中SQL作为‘思考语言’的工程落地路径

weixin_34417200的博客 379

Python项目2:将Oracle结果以Html列表形式展现在邮件中

之前做过一个功能将Oracle结果以Html的列表形式展现在邮件中,这次给大家分享下Python项目源码,实现后的结果图如下所示: 这相当于对异常数据一个监控,每天都会把对应的异常数据通过邮件显示出来。如果有异常数据的及时预警,就会采取对应的对异常数据的处理。 主要是几个方法: 1、查询Oracle数据库的方法: def querystr(key, sql): datalist = [] try: global starttime global

wjjzzg666的博客 988

测试工程师的底层认知:数据流、分层解耦与物理映射

自动化测试的本质不是模拟点击,而是理解软件系统的数据流动与分层契约。从UI界面到数据库,再到硬件信号,每一层都承载着可验证的数据语义和交互逻辑。掌握分层解耦思想,能帮助测试人员精准定位故障、规避UI脆弱性;理解数据流与物理映射关系,则支撑起对IoT、嵌入式及高可用系统的深度验证能力。本文围绕数据流建模、四层架构职责、HTTP协议标准化、状态终态校验等核心原理展开,为测试开发(SDET)提供可迁移的技术世界观和工程落地路径。

diaojin6880的博客 415

python 查询数据库并打印,将python数据库查询打印到HTML文档

我编写了一些python来查询Oracle数据库,当我用浏览器查看时,我希望它将结果打印在格式化的HTML表中。我不知道怎么做。在我写的python如下:#!/usr/bin/python2.6import imp,datetimeimport cx_Oracledef index():conn_str = u'$USERNAME/$PASSWORD@$HOSTNAME:$PORT/$SERVIC...

weixin_39709178的博客 1162

Flask入门与实战:从零构建可部署的Python Web应用

Flask是一个轻量级Python Web框架,以显式设计、低侵入性和高可控性著称,其核心原理是将WSGI应用封装为可扩展的路由系统,不强制约定、不隐藏中间件,使开发者能直面HTTP请求生命周期。这种设计赋予它极强的技术价值:快速验证MVP、适配前后端分离架构、便于调试与教学实践。典型应用场景包括内部工具系统、数据看板、Vue/React后端API服务及教学平台(如头歌)的Web开发实验。本文围绕Flask环境搭建、路由机制、模板渲染、数据库操作与生产部署五大关键环节,结合conda虚拟环境、原生SQLAl

abcyan1235的博客 449

Python构建轻量级Web漏洞扫描器:从架构设计到插件化实现

Web漏洞扫描是网络安全领域的基础实践,其核心原理是通过模拟攻击行为探测应用系统的安全弱点。从技术实现角度看,一个高效的扫描器通常基于模块化架构,将目标发现、漏洞检测、结果分析等环节解耦。在工程实践中,Python因其丰富的网络库和简洁语法,成为快速开发此类工具的首选。通过插件化设计,扫描器可以灵活集成SQL注入、XSS等检测模块,并利用并发处理和智能调度优化扫描性能。这种可定制化的方案特别适用于企业内部安全巡检、自动化测试流程构建等场景,为安全从业者提供了从原理学习到实战落地的完整路径。本文以Python

weixin_34133829的博客 427

jinja2 之变量取值 flask模板引擎

简介: jinja2是一款flask的模板引擎,它能够有效的将业务逻辑和页面逻辑分开,使代码可读性增强并且更加容易理解和维护 使用起来灵活简单,我们只需要提供一个模板,并在模板里面用{{变量}}占好位置,使用时,在模板文件的外部将变量传进去,即可还原文件本身的样子。 这里只介绍一种用法:变量取值 安装: pip3 install jinja2 测试是安装成功: Python -c “import jinja2” 使用: 1.将模板文件创建好:将里面的变量用{{变量名}}代替 2.在其他文件,需要向模板里面

weixin_43202081的博客 990

NCC2105离线数据字典完美修正版:从Oracle元数据到HTML静态页面的实践

数据字典是数据库开发与运维的基础工具,尤其在大型ERP系统中,表结构数量庞大,字段注释和类型信息直接影响实施效率。传统在线字典依赖网络和权限,而离线网页版数据字典通过提取数据库元数据,生成可直接在浏览器打开的静态页面,彻底摆脱环境限制。本文从Oracle数据库字典视图的查询原理出发,讲解如何利用Python脚本清洗字段类型、处理中文编码,并采用数据与展示分离的JSON+HTML架构,解决大数据量下的性能瓶颈。该方案适用于NCC2105等复杂ERP的现场运维,也适合需要快速构建数据库文档的内网隔离场景。通过自

weixin_30086969的博客 217

JinJa2模板渲染

要了解jinja2,那么需要先理解模板的概念。模板在Python的web开发中广泛使用,它能够有效的将业务逻辑和页面逻辑分开,使代码可读性增强,并且更加容易理解和维护。 模板简单来说就是一个其中包含占位变量表示动态部分的文,模板文件在经过动态赋值后,返回给用户。可以理解为渲染。 Python中自带一个简单的模板就是string提供的。但Python自带的模板功能极其有限,如果我们想要在模板中使用控制语句和表达式,医技继承等功能的话,就无法实现了。目前主流的模板系统,最常用的就是jinja2和mako。

zhxl1631_163_com的博客 922

基于 Python Flask 的 Web 漏洞扫描系统:信息搜集与漏洞检测实战

在 Web 安全与渗透测试领域,漏洞扫描是发现系统风险的核心手段。理解扫描原理不仅有助于构建安全防护体系,也是许多开发者入行安全方向的必修课。一个典型的扫描流程往往从信息搜集开始,包括子域名枚举、端口探测和指纹识别,这些步骤决定了攻击面的覆盖范围;随后通过构造 payload 进行漏洞检测,如 SQL 注入和 XSS,利用响应特征与时间延迟判断漏洞是否存在。基于 Python Flask 框架,可以快速搭建出可视化扫描平台,将任务调度、结果展示与检测逻辑分层实现。本文结合工程实践,详细讲解模块拆分、检测算法

weixin_34342905的博客 352

Python-JinjaSQL使用Jinja模板生成SQL

JinjaSQL:使用Jinja模板生成SQL,而不用担心SQL注入

Python监控系统信息、巡检数据库将结果写入到html,并定时发送邮件到邮箱

1、编写jinja2模板 <html> <meta http-equiv="Content-Type" content="text/html" charset="GBK" /> <head> <title>Oracle中查询数据</title> <style type="text/css"> &...

Lissen_Gan的博客 2119

DisplayPort 1.4数据扰码实战:16bit LFSR并行优化技巧(附Verilog代码)

本文深入探讨了DisplayPort 1.4协议中16bit数据扰码的并行化实现。针对高带宽视频传输需求,文章详细推导了16位LFSR(线性反馈移位寄存器)的单周期16步并行计算公式,并提供了可直接使用的Verilog代码,解决了传统8bit串行处理吞吐量不足的瓶颈,为高速接口设计提供了关键优化技巧。

y4z5a6b7的博客 259

基于Python NLP情感分析微博舆情数据爬虫可视化分析系统+可视化+NLP情感分析+爬虫+机器学习(完整系统源码+数据库+详细部署文档+万字论文+详细开发文档)

Python语言、Flask框架、MySQL数据库、requests网络爬虫技术、scikit-learn机器学习、snownlp情感分析、词云、舆情分析3、项目说明1.开发工具本项目主要采用 PyCharm 开放平台利用 Python 语言来实现的。PyCharm 是一种PythonIDE,带有一整套可以帮助用户在使用 Python 语言开发时提高其效率的工具。2.数据获取。

今天再多学会儿博客 7057

Nacos2.3.0与vastBase数据库的集成实践指南

本文详细介绍了将Nacos 2.3.0的默认数据库从MySQL迁移至vastBase数据库的完整实践指南。内容涵盖前期环境准备、源码改造、依赖配置、SQL适配、数据库初始化以及最终的编译打包与部署验证,旨在帮助开发者在国产化或特定技术栈场景下,实现微服务配置中心与vastBase数据库的自主可控集成。

plant的博客 273

Profinet从站开发初体验:用p-net开源库和树莓派快速搭建一个IO设备模拟器

本文详细介绍了如何使用p-net开源库和树莓派快速搭建Profinet从站IO设备模拟器。从开发环境准备、p-net源码编译到设备模拟器功能实现,提供了全流程实战指南,帮助开发者快速掌握工业通信协议开发技巧,适用于工业自动化领域的设备互联测试与验证。

weixin_30384217的博客 383

Python自动化布尔盲注:原理、实现与实战优化指南

SQL注入是Web安全领域的核心漏洞类型之一,其原理是攻击者通过构造恶意SQL语句,干扰应用程序的正常数据库查询逻辑。在众多注入技术中,布尔盲注是一种特殊形式,它不直接返回数据或错误信息,而是通过应用程序对查询结果为真或假所呈现的两种不同页面状态(如关键词差异、响应长度变化)来间接推断信息。这种基于布尔逻辑的信息提取方式,虽然隐蔽,但手工操作极其繁琐低效。因此,通过编写自动化脚本(例如使用Python的requests库)来模拟“提问-判断”过程,结合二分查找等算法,可以大幅提升测试效率与准确性,实现数据库

weixin_34185320的博客 603

来自工业界的知识库 RAG 服务(二),RagFlow 源码全流程深度解析

前面介绍过有道 QAnything 源码解析,通过深入了解工业界的知识库 RAG 服务,得到了不少调优 RAG 服务的新想法。因此本次趁热打铁,额外花费一点时间,深入研究了另一个火热的开源 RAG 服务RagFlow的完整实现流程,希望同样有所收获。首先依旧可以先从框架图入手,与常规的 RAG 架构进行一些比较可以看到右侧知识库被明显放大,同时最右侧详细介绍了文件解析的各种手段,比如OCR等,这些在常规的 RAG 中可能会作为一个不起眼的。

易迟的专栏 2万+

数据库安全防御实战:从SQL注入到纵深防御体系构建

数据库作为应用系统的核心,其安全性直接关系到业务连续性与数据资产保护。从技术原理层面看,攻击者常利用SQL注入、弱口令等漏洞突破防线,其中SQL注入通过将恶意代码插入输入参数,篡改原始查询逻辑,是Web应用层最常见的攻击手段。在工程实践中,防御体系的价值在于构建从网络、认证到应用层的立体防护。通过实施最小权限原则、网络隔离、传输加密等基础配置,结合参数化查询、输入验证等应用层防护,能有效抵御多数自动化攻击。具体到应用场景,无论是传统Web服务还是云原生架构,都需要建立涵盖开发、部署、运维全生命周期的安全流程

chenshixi3325的博客 433

YOLOv5轻量化实战:从Ghost模块到工业级部署的完整指南

本文详细介绍了YOLOv5轻量化实战,重点解析了Ghost模块在工业检测中的应用及其优化策略。通过Ghost卷积技术,模型参数量和GFLOPs显著降低,同时保持高精度,适用于实时性要求严格的工业场景。文章还提供了从模型优化到TensorRT加速的完整部署指南,助力开发者实现高效工业级应用。

weixin_28223453的博客 489

Unity之Timeline教程

Unity Timeline是Unity的一种时间轴编辑器工具,用于制作和管理游戏中的动画、剧情以及事件触发。它提供了直观的界面,使得开发者可以通过拖放操作轻松创建和编辑时间轴。Activation Track:用于控制物体的激活状态。可以在轨道上添加关键帧,控制物体的激活和非激活状态。Animation Track:用于处理物体的动画。可以在此轨道上添加关键帧,编辑物体的动画状态。Audio Track:用于处理场景中的音频。可以管理音频的播放、暂停、淡入淡出等操作。

TxNet 9439

LogicHunter:基于Agentic Oracle的LLM智能体框架自动化测试方案

在软件工程领域,模糊测试(Fuzzing)是一种通过自动生成随机、异常或边界输入来发现程序漏洞的核心测试方法。其原理在于模拟不可预测的真实环境输入,以验证系统的健壮性和容错性。随着大语言模型智能体(LLM Agent)承担起自动化决策、工具调用等关键任务,其行为的可靠性与安全性变得至关重要。传统的单元测试难以覆盖智能体复杂的自然语言交互与动态工作流,因此需要一种专门的方法论。LogicHunter项目将模糊测试理念与智能体特性结合,构建了一个动态的、自进化的测试循环。它通过“猎手”角色生成包括边界值、语义干

weixin_30475039的博客 479

Trae 保姆级使用指南,零基础小白也能实现编程。

Trae 使用指南 Trae AI 使用 零基础编程 满血版 DeepSeek-R1&V3 AI IDE 深度理解中文开发场景 傻瓜式编程 编程入门 开发入门

Mr.L-OAM的博客 5816

模型预测没人信?用Python构建交互式监控报表,让业务方一目了然(附代码)附完整代码)

业务人员问:“这个预测准吗?为什么这本书被高估了20托?”没有可视化,模型就是黑盒。本文教你用Python + Plotly制作一张交互式监控报表,自动展示预测 vs 实际散点图、误差分布、每月MAE趋势、高估/低估商品Top 10、冷启动效果。非技术人员也能看懂,附完整代码,复制即用。阅读本文需10分钟,代码可直接运行。

折哥|智能物流与Java实战,副高数据库工程师。深耕出版社物流WMS/OMS(线体/立库/VGA),也分享Java进阶与OMS电商对接。Oracle→PG实战派。相信沉淀可迁移能力,分享通用技术,不藏不虚。 421

2023年12月青少年C/C++软件编程(三级)等级考试试卷及答案解析

有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。第一行一个数字n,n不超过100,表示有n*n的宿舍房间。接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空着,’@’表示第一天该房间住着得流感的人。输出为一行,表达式的值。任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子。

长春高老师编程 1511

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

模板驱动型文档自动化:结构化占位符与条件渲染实战

文档自动化是现代内容生产的核心能力之一,其本质在于将重复性格式工作转化为可复用、可验证、可扩展的工程实践。基于结构化占位符与模板驱动机制,系统可在语义确定前提下实现跨文档样式继承、动态章节生成与数据源联动,显著规避AI生成中的术语不一致、引用不同步等语义不确定性问题。该技术广泛应用于SaaS白皮书、合规报告、API文档及多版本营销简报等场景,尤其适合对格式一致性、法律严谨性与交付时效性有高要求的市场、技术文档与合规岗位。本文聚焦Sqribble平台的模板驱动架构,深入解析结构化占位符设计、Jinja2条件渲

weixin_30919571的博客 429

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: Python Jinja2模块简单使用
下一篇: Python psutil模块的使用详解[转]
Lissen_Gan
博客等级 码龄13年 11粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值