📚 基本概念¶
在深入使用EmailWidget之前,理解其核心概念将帮助你更好地构建邮件报告。本章将介绍EmailWidget的设计理念和关键概念。
📧 Email类详解¶
基本概念¶
Email
类是EmailWidget的核心,它充当所有Widget的容器和管理器:
Python
from email_widget import Email, TextWidget
# 创建邮件对象
email = Email(title="报告标题")
# 设置元信息
email.set_subtitle("副标题")
email.set_footer("脚注信息")
# 管理Widget
email.add_widget(TextWidget('Hello, World!'))
email.remove_widget("Hello, World!")
email.clear_widgets()
# 导出结果
html_content = email.export_str()
file_path = email.export_html("report.html")
生命周期¶
Email对象的典型生命周期:
- 创建 - 初始化邮件对象
- 配置 - 设置标题、副标题、脚注等
- 添加内容 - 添加各种Widget组件
- 渲染 - 生成HTML内容
- 导出 - 保存为文件或获取字符串
特性功能¶
🧩 Widget组件系统¶
设计理念¶
所有Widget组件都继承自BaseWidget
,确保API的一致性:
Python
from email_widget.core.base import BaseWidget
class MyCustomWidget(BaseWidget):
def __init__(self):
super().__init__()
self.widget_type = "custom"
def render(self) -> str:
# 渲染逻辑
return self._render_template("custom.html", context)
公共特性¶
所有Widget都具有以下共同特性:
Widget分类¶
EmailWidget提供12种专业组件,按功能分类:
📝 内容组件¶
- TextWidget - 文本内容,8种样式
- ImageWidget - 图片展示,多源支持
- QuoteWidget - 引用样式,作者信息
📊 数据组件¶
- TableWidget - 数据表格,DataFrame集成
- ChartWidget - 图表展示,matplotlib支持
- LogWidget - 日志显示,级别分类
📈 指标组件¶
- ProgressWidget - 线性进度条,5种主题
- CircularProgressWidget - 圆形进度,多种尺寸
- StatusWidget - 状态管理,动态更新
🎨 界面组件¶
- AlertWidget - 警告提醒,5种类型
- CardWidget - 信息卡片,图标支持
- ColumnWidget - 布局容器,响应式设计
🎯 最佳实践¶
代码组织¶
建议的代码组织方式:
Python
# 1. 导入必要的库
from email_widget import Email, TextWidget, TableWidget, EmailConfig
from email_widget.core.enums import TextType
# 2. 数据准备
def prepare_data():
return {"sales": [100, 200, 300]}
# 3. 邮件构建
def build_email(data):
email = Email("销售报告")
# 添加内容
email.add_widget(
TextWidget().set_content("销售数据分析").set_type(TextType.TITLE_LARGE)
)
return email
# 4. 主函数
def main():
data = prepare_data()
email = build_email(data)
email.export_html("report.html")
🚀 下一步¶
现在你已经理解了EmailWidget的核心概念,可以: