欢迎访问宙启技术站
智能推送

使用HTMLExporter()和CSS样式在Python中创建漂亮的HTML页面

发布时间:2024-01-01 23:39:44

要使用Python中的HTMLExporter()和CSS样式创建漂亮的HTML页面,我们需要首先安装和导入必要的库和模块。这里我们将使用pandas和nbconvert库来加载和转换数据,并使用jinja2库来处理模板。以下是一个使用例子,展示如何从一个pandas数据框中创建一个带有CSS样式的漂亮HTML页面。

# 导入所需的库和模块
import pandas as pd
from nbconvert import HTMLExporter
from jinja2 import Template

# 创建一个数据框
data = {'Name': ['John', 'Emma', 'Will', 'Lucy'],
        'Age': [25, 28, 22, 30],
        'Country': ['USA', 'Canada', 'Australia', 'UK']}
df = pd.DataFrame(data)

# 创建一个HTMLExporter
html_exporter = HTMLExporter()

# 使用Jinja2模板定义CSS样式
css_style = """
<style>
    table {
        font-family: Arial, sans-serif;
        border-collapse: collapse;
        width: 100%;
    }

    th, td {
        border: 1px solid #ddd;
        padding: 8px;
    }

    tr:nth-child(even) {
        background-color: #f2f2f2;
    }

    th {
        background-color: #4CAF50;
        color: white;
    }
</style>
"""

# 将CSS样式添加到HTMLExporter的配置中
html_exporter.template_file = 'basic'
html_exporter.extra_template_basedirs = ['.']
html_exporter.template_path = ['.', '/usr/local/share/jupyter/nbconvert/templates']  # Jupyter特定配置

# 将数据框转换为HTML字符串
html_body, resources = html_exporter.from_object(df)

# 定义Jinja2模板,插入CSS样式和HTML内容
template = Template(css_style + html_body)

# 渲染模板并将结果保存为HTML文件
output_html = template.render()
with open('output.html', 'w') as f:
    f.write(output_html)

在这个例子中,我们首先使用pandas库创建了一个简单的数据框。然后,我们使用nbconvert中的HTMLExporter()创建了一个HTMLExporter对象。接下来,我们使用Jinja2模板定义了一些CSS样式,例如表格样式,字体和颜色样式等。然后,我们通过设置HTMLExporter的配置来添加CSS样式。接下来,我们使用HTMLExporter的from_object()方法将数据框转换为HTML字符串。最后,我们使用Jinja2模板插入CSS样式和HTML内容,并将结果保存为一个HTML文件。

这个例子里的CSS样式比较简单,仅用于展示如何使用HTMLExporter()和CSS样式创建一个漂亮的HTML页面。你可以根据自己的需求自定义CSS样式,例如修改表格的背景色、字体大小、边框样式等。你还可以添加其他HTML元素,例如标题、段落、图像等,以创建更加丰富的HTML页面。