Python模塊MarkupPy與自定義html報(bào)告詳解
簡(jiǎn)介
MarkupPy是Python模塊用于生成HTML和XML格式的字符串。它的主要作用是提供了一種比原生HTML/XML更加易讀和易寫(xiě)的編寫(xiě)方式,通過(guò)Python代碼來(lái)生成HTML或XML代碼。
使用MarkupPy,可以在Python中使用不同的對(duì)象類(lèi)型和方法,來(lái)動(dòng)態(tài)地生成HTML/XML文件。相比手動(dòng)編寫(xiě)HTML/XML代碼,使用MarkupPy能夠使代碼更加簡(jiǎn)潔、易讀、易寫(xiě)且易于維護(hù)。
1. 設(shè)置文件初始信息
init 方法的語(yǔ)法
markup.page().init(
title=None #設(shè)置文檔標(biāo)題
header=None #設(shè)置頂部信息
footer=None #設(shè)置頁(yè)腳信息
encoding=None #定義編碼
lang='en' #頁(yè)面語(yǔ)言,通常是兩個(gè)字符串,在html模式下顯示為<html lang='en'>
css=None #層疊樣式表文件名為字符串或多個(gè)css文件的字符串列表
metainfo=None #設(shè)置<base href="..."> 標(biāo)簽 <head>
charset=None #定義字符集的字符串將被插入<meta http-equiv='Content-Type' content='text/html; charset=myset'>
doctype=None #文檔類(lèi)型字符串
bodyattrs=None #以{'key':'value',…},它將被添加為<body>元素的屬性,如<body key='value'…>
script=None #字典包含src:類(lèi)型對(duì),<script type='text/type' src-src></script>或列表['src1', 'src2',…]在這種情況下,'javascript'被假定為所有
base=None #設(shè)置<base href="…"> <head>中的標(biāo)簽
)代碼示例
from MarkupPy import markup
# 準(zhǔn)備一個(gè)生成文件
file = 'E:\其他\\tmp.html'
# 使用page方法
page = markup.page()
# 使用 init 方法定義文件初始信息
page.init(
title = '文檔標(biāo)題',
header = '========= 文檔頂部信息 =========',
footer = '\n----頁(yè)腳信息'
)
# 換行
page.br()
# 寫(xiě)入文件
with open(file, 'w') as file:
file.write(str(page))結(jié)果


2. 插入文本內(nèi)容
2.1. 插入文本
插入單行文本內(nèi)容
from MarkupPy import markup
# 準(zhǔn)備一個(gè)生成文件
file = 'E:\其他\\tmp.html'
# 使用page方法
page = markup.page()
# 插入正文
page.p('這是一行正文')
'''定義一個(gè)簡(jiǎn)單的有序列表'''
page.ol()
page.li('這是第1個(gè)有序列表')
page.li('這是第2個(gè)有序列表')
page.ol.close()
'''定義一個(gè)多層有序列表'''
page.ol()
page.li('這是第1個(gè)嵌套有序列表')
page.ol()
page.li('這是第2個(gè)嵌套有序列表')
page.ol()
page.li('這是第3個(gè)嵌套有序列表')
page.ol.close() #關(guān)閉有序列表
page.ol.close() #關(guān)閉有序列表
page.ol.close() #關(guān)閉有序列表
# 寫(xiě)入文件
with open(file, 'w') as file:
file.write(str(page))
插入多行內(nèi)容(不能直接向p寫(xiě)入多行內(nèi)容,通過(guò)列表或元組引入)
from MarkupPy import markup
# 準(zhǔn)備一個(gè)生成文件
file = 'E:\其他\\tmp.html'
# 使用page方法
page = markup.page()
# 使用 p 方法插入內(nèi)容
text = ['這是第1行內(nèi)容','這是第2行內(nèi)容']
page.p(text)
page.p(('這是第3行內(nèi)容','這是第4行內(nèi)容'))
# 寫(xiě)入文件
with open(file, 'w') as file:
file.write(str(page))
直接插入多行引發(fā)異常
page.p('這是第1行內(nèi)容','這是第2行內(nèi)容')
2.2. 插入無(wú)序列表 ul
from MarkupPy import markup
# 準(zhǔn)備一個(gè)生成文件
file = 'E:\其他\\tmp.html'
# 使用page方法
page = markup.page()
# 插入正文
page.p('這是一行正文')
'''直接插入列表(默認(rèn)無(wú)序)'''
page.li('這是一個(gè)無(wú)序列表(默認(rèn)的)')
page.li('這是一個(gè)無(wú)序列表(默認(rèn)的)')
'''指定插入無(wú)序列表'''
page.ul()
page.li('這是一個(gè)無(wú)序列表(手動(dòng)指定的)')
page.ul.close()
'''插入嵌套無(wú)序列表'''
page.ul()
page.li('這是第1個(gè)嵌套無(wú)序列表')
page.ul()
page.li('這是第2個(gè)嵌套無(wú)序列表')
page.ul()
page.li('這是第3個(gè)嵌套無(wú)序列表')
page.ul.close() #關(guān)閉無(wú)序列表
page.ul.close() #關(guān)閉無(wú)序列表
page.ul.close() #關(guān)閉無(wú)序列表
# 寫(xiě)入文件
with open(file, 'w') as file:
file.write(str(page))
由于默認(rèn)的無(wú)序列表無(wú)法關(guān)閉,所以在第二次指定無(wú)序列表時(shí)會(huì)自動(dòng)識(shí)別為嵌套
2.3. 插入有序列表 ol
from MarkupPy import markup
# 準(zhǔn)備一個(gè)生成文件
file = 'E:\其他\\tmp.html'
# 使用page方法
page = markup.page()
# 插入正文
page.p('這是一行正文')
'''定義一個(gè)簡(jiǎn)單的有序列表'''
page.ol()
page.li('這是第1個(gè)有序列表')
page.li('這是第2個(gè)有序列表')
page.ol.close()
'''定義一個(gè)多層有序列表'''
page.ol()
page.li('這是第1個(gè)嵌套有序列表')
page.ol()
page.li('這是第2個(gè)嵌套有序列表')
page.ol()
page.li('這是第3個(gè)嵌套有序列表')
page.ol.close() #關(guān)閉有序列表
page.ol.close() #關(guān)閉有序列表
page.ol.close() #關(guān)閉有序列表
# 寫(xiě)入文件
with open(file, 'w') as file:
file.write(str(page))
3. 設(shè)置字體屬性
3.1. 語(yǔ)法
markup.page().p('字體', style='屬性1; 屬性2; 屬性3...')示例
from MarkupPy import markup
page = markup.page()
# 設(shè)置文件屬性
page.p('這是第一行正文,默認(rèn)屬性')
page.p(
'這是第二行正文:顏色(紅色)、對(duì)齊方式(左對(duì)齊)、字體大小(40)、字體加粗',
style='color: red; '
'text-align: left; '
'font-size: 40; '
'font-weight: bold;')
# 將文件寫(xiě)入文件
with open('E:\其他\\tmp.html', 'w') as file:
file.write(str(page))
3.2. 設(shè)置對(duì)齊方式
- left:左對(duì)齊
- right:右對(duì)齊
- center:居中對(duì)齊
- auto:水平對(duì)齊
- middle:垂直對(duì)齊
from MarkupPy import markup
page = markup.page()
# 設(shè)置文件對(duì)齊方式
page.p('這是一個(gè)左對(duì)齊文本', style='text-align: left')
page.p('這是一個(gè)右對(duì)齊文本', style='text-align: right')
page.p('這是一個(gè)居中對(duì)齊文本', style='text-align: center')
page.p('這是一個(gè)水平居中對(duì)齊文本', style='text-align: auto')
page.p('這是一個(gè)垂直居中對(duì)齊文本', style='text-align: middle')
# 將文件寫(xiě)入文件
with open('E:\其他\\tmp.html', 'w') as file:
file.write(str(page))
3.3. 設(shè)置字體大小
from MarkupPy import markup
page = markup.page()
# 設(shè)置文件對(duì)齊方式
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')
# 將文件寫(xiě)入文件
with open('E:\其他\\tmp.html', 'w') as file:
file.write(str(page))
3.4. 設(shè)置字體顏色
- black:黑色
- white:白色
- red:紅色
- green:綠色
- blue:藍(lán)色
- yellow:黃色
- orange:橙色
- purple:紫色
- gray:灰色
from MarkupPy import markup
page = markup.page()
# 設(shè)置文件對(duì)齊方式
page.p('字體顏色: 紅色', style='color: red')
page.p('字體顏色: 黑色', style='color: black')
page.p('字體顏色: 藍(lán)色', style='color: blue')
# 將文件寫(xiě)入文件
with open('E:\其他\\tmp.html', 'w') as file:
file.write(str(page))
3.5. 設(shè)置字體加粗
from MarkupPy import markup
page = markup.page()
# 設(shè)置文件對(duì)齊方式
page.p('字體加粗!', style='font-weight: bold;')
page.p('字體正常!')
# 將文件寫(xiě)入文件
with open('E:\其他\\tmp.html', 'w') as file:
file.write(str(page))
4. 插入特殊文件
4.1. add 插入圖像、音頻、視頻、Flash文件
page = markup.page()
# 添加圖片,并設(shè)置寬度、高度
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()
# 添加圖片,并設(shè)置寬度、高度
page.add('<img src="E:\其他\dog.jpg" alt="狗子圖片" width="800" height="500">')
# 寫(xiě)入文件
with open('E:\其他\\tmp.html', 'w') as file:
file.write(str(page))
4.2. img 插入圖片
語(yǔ)法
page = markup.page()
page.img(
src #指向圖像文件的URL。
alt #圖像無(wú)法讀取,使用一個(gè)默認(rèn)的文本替代。
width #設(shè)置寬度(以像素為單位) 。
height #設(shè)置高度(以像素為單位) 。
title #提供有關(guān)圖像內(nèi)容的額外信息。
class_ #添加樣式或設(shè)置特定的樣式。
style #添加其他自定義樣式。
id #指定圖像元素的ID。
border #指定圖像周?chē)倪吙驅(qū)挾龋ㄈ绻嬖冢?
usemap #指定一個(gè)映射,允許您將圖像劃分為幾個(gè)可單擊區(qū)域。
ismap #允許您使用usemap屬性,將圖像作為客戶端圖像映射(CIM)使用。
align #指定圖像的水平對(duì)齊方式。
)本地存在圖片
from MarkupPy import markup
page = markup.page()
# 定義圖片
page.img(
src='E:\其他\cat.jpg', #圖片地址
width=800, #設(shè)置寬度
height=500, #設(shè)置高度
alt='圖片沒(méi)找到,使用該文本替代'
)
# 將文件寫(xiě)入文件
with open('E:\其他\\tmp.html', 'w') as file:
file.write(str(page))
當(dāng)找不到圖片,結(jié)果如下:

5. 引入超鏈接
- 超鏈接可以是本地,也可以是網(wǎng)絡(luò)
page.a('這是一個(gè)百度鏈接', )
(點(diǎn)擊后自動(dòng)跳轉(zhuǎn)百度頁(yè)面)
到此這篇關(guān)于Python模塊MarkupPy & 自定義html報(bào)告的文章就介紹到這了,更多相關(guān)Python html報(bào)告內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python通過(guò)線程實(shí)現(xiàn)定時(shí)器timer的方法
這篇文章主要介紹了python通過(guò)線程實(shí)現(xiàn)定時(shí)器timer的方法,涉及Python線程與定時(shí)器timer的使用技巧,需要的朋友可以參考下2015-03-03
Python中if語(yǔ)句的使用方法及實(shí)例代碼
if語(yǔ)句能夠進(jìn)行條件測(cè)試,并依據(jù)一定的條件進(jìn)行具體的操作,下面這篇文章主要給大家介紹了關(guān)于Python中if語(yǔ)句的使用方法及實(shí)例代碼,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
利用Python半自動(dòng)化生成Nessus報(bào)告的方法
這篇文章主要介紹了利用Python半自動(dòng)化生成Nessus報(bào)告的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03
python中使用smtplib和email模塊發(fā)送郵件實(shí)例
python腳本發(fā)郵件,一般會(huì)用到smtplib和email這兩個(gè)模塊??纯丛撃K怎么使用,先看smtplib模塊。 smtplib模塊定義了一個(gè)簡(jiǎn)單的SMTP客戶端,可以用來(lái)在互聯(lián)網(wǎng)上發(fā)送郵件2014-04-04
Python3自動(dòng)生成第三方依賴(lài)模塊文件信息requirements.txt問(wèn)題及解決
文章介紹了如何使用pipreqs庫(kù)自動(dòng)生成Python項(xiàng)目依賴(lài)的requirements.txt文件,并分享了在使用過(guò)程中遇到的連接錯(cuò)誤問(wèn)題及其解決辦法,即使用國(guó)內(nèi)的PyPI鏡像源2025-12-12
python實(shí)現(xiàn)批量修改圖片格式和尺寸
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)批量修改圖片格式和尺寸的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
Python運(yùn)算符的應(yīng)用超全面詳細(xì)教程
Python運(yùn)算符是為了實(shí)現(xiàn)數(shù)值或字符運(yùn)算的特殊符號(hào)。Python運(yùn)算符可以分為算術(shù)運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符、成員運(yùn)算符、身份運(yùn)算符、比較運(yùn)算符、三目運(yùn)算符等。接下來(lái),我們就開(kāi)始來(lái)學(xué)習(xí)這一堆符號(hào)吧2022-07-07

