python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python html报告

Python模块MarkupPy与自定义html报告详解

作者:〖羊头〗➫ lsy

MarkupPy是Python模块用于生成HTML和XML格式的字符串,它的主要作用是提供了一种比原生HTML/XML更加易读和易写的编写方式,通过Python代码来生成HTML或XML代码,这篇文章主要介绍了Python模块MarkupPy&自定义html报告的相关知识,需要的朋友可以参考下

简介

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

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

1. 设置文件初始信息

init 方法的语法

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

代码示例

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()
# 插入正文
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))

插入多行内容(不能直接向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))

直接插入多行引发异常

page.p('这是第1行内容','这是第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))

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

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))

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))

3.2. 设置对齐方式

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))

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))

  3.4. 设置字体颜色

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))

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('<img src="E:\其他\dog.jpg" alt="狗子图片" width="800" height="500">')
# 添加音频
page.add('<audio src="audio.mp3" controls>')
# 添加视频
page.add('<video src="video.mp4" controls>')
# 添加Flash
page.add('<object type="application/x-shockwave-flash" data="flash.swf">')

插入图片示例

from MarkupPy import markup
page = markup.page()
# 添加图片,并设置宽度、高度
page.add('<img src="E:\其他\dog.jpg" alt="狗子图片" width="800" height="500">')
# 写入文件
with open('E:\其他\\tmp.html', 'w') as file:
    file.write(str(page))

4.2. img 插入图片

语法

page = markup.page()
page.img(
    src    #指向图像文件的URL。
    alt    #图像无法读取,使用一个默认的文本替代。
    width  #设置宽度(以像素为单位) 。
    height #设置高度(以像素为单位) 。
    title  #提供有关图像内容的额外信息。
    class_ #添加样式或设置特定的样式。
    style  #添加其他自定义样式。
    id     #指定图像元素的ID。
    border #指定图像周围的边框宽度(如果存在)。
    usemap #指定一个映射,允许您将图像划分为几个可单击区域。
    ismap  #允许您使用usemap属性,将图像作为客户端图像映射(CIM)使用。
    align  #指定图像的水平对齐方式。
)

本地存在图片

from MarkupPy import markup
page = markup.page()
# 定义图片
page.img(
    src='E:\其他\cat.jpg', #图片地址
    width=800,   #设置宽度
    height=500,  #设置高度
    alt='图片没找到,使用该文本替代'
)
# 将文件写入文件
with open('E:\其他\\tmp.html', 'w') as file:
    file.write(str(page))

 当找不到图片,结果如下:

5. 引入超链接

page.a('这是一个百度链接', href='https://www.baidu.com/')

(点击后自动跳转百度页面) 

到此这篇关于Python模块MarkupPy &amp; 自定义html报告的文章就介绍到这了,更多相关Python html报告内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文