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

 更新时间:2023年07月31日 15:37:26   作者:〖羊头〗➫ 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. 设置对齐方式

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

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. 设置字体颜色

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

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报告内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python搭建NPL模型的详细步骤和代码

    python搭建NPL模型的详细步骤和代码

    本文提供2026年最新中文NLP模型搭建教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-04-04
  • python通过线程实现定时器timer的方法

    python通过线程实现定时器timer的方法

    这篇文章主要介绍了python通过线程实现定时器timer的方法,涉及Python线程与定时器timer的使用技巧,需要的朋友可以参考下
    2015-03-03
  • 深入了解python装饰器

    深入了解python装饰器

    这篇文章主要介绍了解python装饰器,装饰器定义一个为其他函数添加功能的函数,装饰器就是在不修改装饰对象源代码以及调用方式的前提下,为装饰对象添加新功能,下面和小编一起进入文章内容了解更多知识,需要的朋友可以参考一下
    2022-03-03
  • Python中if语句的使用方法及实例代码

    Python中if语句的使用方法及实例代码

    if语句能够进行条件测试,并依据一定的条件进行具体的操作,下面这篇文章主要给大家介绍了关于Python中if语句的使用方法及实例代码,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 利用Python半自动化生成Nessus报告的方法

    利用Python半自动化生成Nessus报告的方法

    这篇文章主要介绍了利用Python半自动化生成Nessus报告的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • 一文弄懂10大Pandas的索引

    一文弄懂10大Pandas的索引

    索引在我们的日常生活中其实是很常见的,本文主要介绍了一文弄懂10大Pandas的索引,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-03-03
  • python中使用smtplib和email模块发送邮件实例

    python中使用smtplib和email模块发送邮件实例

    python脚本发邮件,一般会用到smtplib和email这两个模块。看看该模块怎么使用,先看smtplib模块。 smtplib模块定义了一个简单的SMTP客户端,可以用来在互联网上发送邮件
    2014-04-04
  • Python3自动生成第三方依赖模块文件信息requirements.txt问题及解决

    Python3自动生成第三方依赖模块文件信息requirements.txt问题及解决

    文章介绍了如何使用pipreqs库自动生成Python项目依赖的requirements.txt文件,并分享了在使用过程中遇到的连接错误问题及其解决办法,即使用国内的PyPI镜像源
    2025-12-12
  • python实现批量修改图片格式和尺寸

    python实现批量修改图片格式和尺寸

    这篇文章主要为大家详细介绍了python实现批量修改图片格式和尺寸的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Python运算符的应用超全面详细教程

    Python运算符的应用超全面详细教程

    Python运算符是为了实现数值或字符运算的特殊符号。Python运算符可以分为算术运算符、逻辑运算符、赋值运算符、成员运算符、身份运算符、比较运算符、三目运算符等。接下来,我们就开始来学习这一堆符号吧
    2022-07-07

最新评论