1. 如何在Python中动态读取数据库数据并插入到报表?
时间: 2024-09-24 18:09:07 浏览: 44
在Python中动态读取数据库数据并插入到LimeReport报表中,可以使用一些常见的数据库操作库(如sqlite3, MySQLdb, Psycopg2等)结合HTML模板。这里以SQLite为例,假设你已经有了一个叫做`deliveries`的表:
```python
import sqlite3
from limerun import render
# 连接到SQLite数据库
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
# 执行SQL查询获取送货清单数据
sql_query = """
SELECT sequence_number, product_name, specification, quantity, barcode
FROM deliveries;
"""
cursor.execute(sql_query)
data_rows = cursor.fetchall()
# 关闭数据库连接
conn.close()
# 初始化LimeReport
template_path = "delivery_report.html"
output_path = "delivery_report.html"
with open(template_path, "r") as template_file:
html_content = template_file.read()
# 替换模板中的数据占位符
data = [{'序号': row[0], '产品名称': row[1], '规格': row[2], '数量': row[3], '条形码': row[4]} for row in data_rows]
rendered_html = html_content.format(*data) # 使用*解压列表传递数据
# 写入输出文件
with open(output_path, "w") as output_file:
output_file.write(rendered_html)
```
在这段代码中,我们首先通过`sqlite3`连接到SQLite数据库,执行SQL查询获取数据,然后把查询结果转换为适合插入到HTML模板的字典格式。最后,将这些数据插入到模板中的表格部分。
如果你使用的是其他类型的数据库(如MySQL、PostgreSQL),只需要调整相应的连接库和SQL语法即可。
阅读全文