6. 报告内容生成

知识基础

  • 了解Python类的基础
  • 了解jinja2模板
  • 了解HTML和CSS进行网页页面设置

学习目标

  • 使用已经添加好内容的 document 生成html文档

这里我们使用jinja2模板来直接生成html格式的报告,使用html+css规定格式,使用jinja2渲染内容

jinja2模板

首先使用html常用的头部(head):






然后对各个部分内容的格式进行规定:


逐个生成报告的各个组成章节


{{ document.title }}

{{ document.foreword }}

{% for chapter in document.chapters %}

{{ chapter.title }}

{%- if chapter.foreword -%}

{{ chapter.foreword }}

{%- endif -%}

{{ chapter.content }}

{% if not chapter.table is none %} {% set table = chapter.table %} {% for column in table.columns %} {% endfor %} {% for index in table.index %} {% for column in table.columns %} {% endfor %} {% endfor %}
{{column}}
{{ table[column][index] }}
{% endif %} {% for subchapter in chapter.chapters %} {% if not subchapter.title is none %}

{{ subchapter.title }}

{{ subchapter.foreword }}

{% if not subchapter.table is none %} {% set table = subchapter.table %} {% for column in table.columns %} {% endfor %} {% for index in table.index %} {% for column in table.columns %} {% endfor %} {% endfor %}
{{column}}
{{ table[column][index] }}
{% endif %} {% if not subchapter.image is none %} {% set image = subchapter.image %}
{% endif %}

{{ subchapter.content }}

{% endif %} {% endfor %} {% endfor %}
%run "3. 报告的内容添加.ipynb"
chapter0
--chapter0_subchapter0
--chapter0_subchapter1
--chapter0_subchapter2
--chapter0_subchapter3
chapter1
--chapter1_subchapter0
--chapter1_subchapter1
--chapter1_subchapter2
--chapter1_subchapter3
chapter2
--chapter2_subchapter0
--chapter2_subchapter1
--chapter2_subchapter2
--chapter2_subchapter3
chapter3
--chapter3_subchapter0
--chapter3_subchapter1
--chapter3_subchapter2
--chapter3_subchapter3
chapter4
--chapter4_subchapter0
--chapter4_subchapter1
--chapter4_subchapter2
--chapter4_subchapter3
title : 2018年5月21日-2018年5月27日亚马逊美站   Pet Supplies   品类爆款分析
-chapter0
--title : 一、总体情况
-chapter1
--title : 二、Best Seller榜单分析:

---chapter1_subchapter0
----title : 1.价格分布

---chapter1_subchapter1
----title : 2.评论量分布

---chapter1_subchapter2
----title : 3.商品排行

---chapter1_subchapter3
----title : 4.品牌排行
-chapter2
--title : 三、Hot New Releases榜单分析:

---chapter2_subchapter0
----title : 1.价格分布

---chapter2_subchapter1
----title : 2.评论量分布

---chapter2_subchapter2
----title : 3.商品排行

---chapter2_subchapter3
----title : 4.品牌排行
-chapter3
--title : 四、Movers & Shakers榜单分析:

---chapter3_subchapter0
----title : 1.价格分布

---chapter3_subchapter1
----title : 2.评论量分布

---chapter3_subchapter2
----title : 3.商品排行

---chapter3_subchapter3
----title : 4.品牌排行
-chapter4
--title :   
from jinja2 import Template
html_name = 'report.html'
with open('./template.html') as f:
    templ = f.read()
t = Template(templ)
html = t.render(document=document)
with open(html_name,'w') as f:
    f.write(html)

你可能感兴趣的:(6. 报告内容生成)