Python模块MarkupPy & 自定义html报告

简介

        MarkupPy是Python模块用于生成HTML和XML格式的字符串。它的主要作用是提供了一种比原生HTML/XML更加易读和易写的编写方式,通过Python代码来生成HTML或XML代码。

        使用MarkupPy,可以在Python中使用不同的对象类型和方法,来动态地生成HTML/XML文件。相比手动编写HTML/XML代码,使用MarkupPy能够使代码更加简洁、易读、易写且易于维护。

目录

1. 设置文件初始信息

2. 插入文本内容

2.1. 插入文本

2.2. 插入无序列表 ul

2.3. 插入有序列表 ol

3. 设置字体属性

3.1. 语法

3.2. 设置对齐方式

3.3. 设置字体大小

3.4. 设置字体颜色

3.5. 设置字体加粗

4. 插入特殊文件

4.1. add 插入图像、音频、视频、Flash文件

4.2. img 插入图片

5. 引入超链接


 

1. 设置文件初始信息

init 方法的语法

markup.page().init(
    title=None      #设置文档标题
    header=None     #设置顶部信息
    footer=None     #设置页脚信息
    encoding=None   #定义编码
    lang='en'       #页面语言,通常是两个字符串,在html模式下显示为
    css=None        #层叠样式表文件名为字符串或多个css文件的字符串列表
    metainfo=None   #设置 标签 
    charset=None    #定义字符集的字符串将被插入
    doctype=None    #文档类型字符串
    bodyattrs=None  #以{'key':'value',…},它将被添加为元素的属性,如
    script=None     #字典包含src:类型对,或列表['src1', 'src2',…]在这种情况下,'javascript'被假定为所有
    base=None       #设置 中的标签
)

代码示例

from MarkupPy import markup
# 准备一个生成文件
file = 'E:\其他\\tmp.html'
# 使用page方法
page = markup.page()
# 使用 init 方法定义文件初始信息
page.init(
    title = '文档标题',
    header = '========= 文档顶部信息 =========',
    footer = '\n----页脚信息'
)
# 换行
page.br()

# 写入文件
with open(file, 'w') as file:
    file.write(str(page))

结果

 

 

2. 插入文本内容

2.1. 插入文本

插入单行文本内容

from MarkupPy import markup
# 准备一个生成文件
file = 'E:\其他\\tmp.html'
# 使用page方法
page = markup.page()
# 使用 p 方法插入内容
page.p('这是一行文本内容')

# 写入文件
with open(file, 'w') as file:
    file.write(str(page))

 

插入多行内容(不能直接向p写入多行内容,通过列表或元组引入)

from MarkupPy import markup
# 准备一个生成文件
file = 'E:\其他\\tmp.html'
# 使用page方法
page = markup.page()
# 使用 p 方法插入内容
text = ['这是第1行内容','这是第2行内容']
page.p(text)
page.p(('这是第3行内容','这是第4行内容'))

# 写入文件
with open(file, 'w') as file:
    file.write(str(page))

Python模块MarkupPy & 自定义html报告_第1张图片

直接插入多行引发异常

page.p('这是第1行内容','这是第2行内容')

Python模块MarkupPy & 自定义html报告_第2张图片

 

2.2. 插入无序列表 ul

from MarkupPy import markup
# 准备一个生成文件
file = 'E:\其他\\tmp.html'
# 使用page方法
page = markup.page()
# 插入正文
page.p('这是一行正文')

'''直接插入列表(默认无序)'''
page.li('这是一个无序列表(默认的)')
page.li('这是一个无序列表(默认的)')

'''指定插入无序列表'''
page.ul()
page.li('这是一个无序列表(手动指定的)')
page.ul.close()

'''插入嵌套无序列表'''
page.ul()
page.li('这是第1个嵌套无序列表')
page.ul()
page.li('这是第2个嵌套无序列表')
page.ul()
page.li('这是第3个嵌套无序列表')
page.ul.close() #关闭无序列表
page.ul.close() #关闭无序列表
page.ul.close() #关闭无序列表

# 写入文件
with open(file, 'w') as file:
    file.write(str(page))

 Python模块MarkupPy & 自定义html报告_第3张图片

  • 由于默认的无序列表无法关闭,所以在第二次指定无序列表时会自动识别为嵌套

 

2.3. 插入有序列表 ol

from MarkupPy import markup
# 准备一个生成文件
file = 'E:\其他\\tmp.html'
# 使用page方法
page = markup.page()
# 插入正文
page.p('这是一行正文')

'''定义一个简单的有序列表'''
page.ol()
page.li('这是第1个有序列表')
page.li('这是第2个有序列表')
page.ol.close()

'''定义一个多层有序列表'''
page.ol()
page.li('这是第1个嵌套有序列表')
page.ol()
page.li('这是第2个嵌套有序列表')
page.ol()
page.li('这是第3个嵌套有序列表')
page.ol.close() #关闭有序列表
page.ol.close() #关闭有序列表
page.ol.close() #关闭有序列表
# 写入文件
with open(file, 'w') as file:
    file.write(str(page))

 Python模块MarkupPy & 自定义html报告_第4张图片

 

 

3. 设置字体属性

3.1. 语法

 markup.page().p('字体', style='属性1; 属性2; 属性3...')

示例

from MarkupPy import markup
page = markup.page()

# 设置文件属性
page.p('这是第一行正文,默认属性')
page.p(
    '这是第二行正文:颜色(红色)、对齐方式(左对齐)、字体大小(40)、字体加粗',
   style='color: red; '
         'text-align: left; '
         'font-size: 40; '
         'font-weight: bold;')

# 将文件写入文件
with open('E:\其他\\tmp.html', 'w') as file:
    file.write(str(page))

Python模块MarkupPy & 自定义html报告_第5张图片

 

3.2. 设置对齐方式

  • left:左对齐
  • right:右对齐
  • center:居中对齐
  • auto:水平对齐
  • middle:垂直对齐
from MarkupPy import markup
page = markup.page()

# 设置文件对齐方式
page.p('这是一个左对齐文本', style='text-align: left')
page.p('这是一个右对齐文本', style='text-align: right')
page.p('这是一个居中对齐文本', style='text-align: center')
page.p('这是一个水平居中对齐文本', style='text-align: auto')
page.p('这是一个垂直居中对齐文本', style='text-align: middle')

# 将文件写入文件
with open('E:\其他\\tmp.html', 'w') as file:
    file.write(str(page))

Python模块MarkupPy & 自定义html报告_第6张图片

 

3.3. 设置字体大小

from MarkupPy import markup
page = markup.page()

# 设置文件对齐方式
page.p('字体大小:50', style='font-size: 50')
page.p('字体大小:40', style='font-size: 40')
page.p('字体大小:30', style='font-size: 30')
page.p('字体大小:20', style='font-size: 20')

# 将文件写入文件
with open('E:\其他\\tmp.html', 'w') as file:
    file.write(str(page))

 Python模块MarkupPy & 自定义html报告_第7张图片

  

3.4. 设置字体颜色

  • black:黑色
  • white:白色
  • red:红色
  • green:绿色
  • blue:蓝色
  • yellow:黄色
  • orange:橙色
  • purple:紫色
  • gray:灰色
from MarkupPy import markup
page = markup.page()

# 设置文件对齐方式
page.p('字体颜色: 红色', style='color: red')
page.p('字体颜色: 黑色', style='color: black')
page.p('字体颜色: 蓝色', style='color: blue')

# 将文件写入文件
with open('E:\其他\\tmp.html', 'w') as file:
    file.write(str(page))

Python模块MarkupPy & 自定义html报告_第8张图片

  

3.5. 设置字体加粗

from MarkupPy import markup
page = markup.page()

# 设置文件对齐方式
page.p('字体加粗!', style='font-weight: bold;')
page.p('字体正常!')

# 将文件写入文件
with open('E:\其他\\tmp.html', 'w') as file:
    file.write(str(page))

  

 

4. 插入特殊文件

4.1. add 插入图像、音频、视频、Flash文件

page = markup.page()

# 添加图片,并设置宽度、高度
page.add('狗子图片')

# 添加音频
page.add('