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屬性,將圖像作為客戶(hù)端圖像映射(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)文章
用于業(yè)余項(xiàng)目的8個(gè)優(yōu)秀Python庫(kù)
今天小編就為大家分享一篇用于業(yè)余項(xiàng)目的8個(gè)大型Python庫(kù),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-09-09django實(shí)現(xiàn)前后臺(tái)交互實(shí)例
本篇文章主要介紹了django實(shí)現(xiàn)前后臺(tái)交互實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08解決python -m pip install --upgrade pip 升級(jí)不成功問(wèn)題
這篇文章主要介紹了python -m pip install --upgrade pip 解決升級(jí)不成功問(wèn)題,需要的朋友可以參考下2020-03-03在Docker上開(kāi)始部署Python應(yīng)用的教程
這篇文章主要介紹了在Docker上開(kāi)始部署Python應(yīng)用的教程,Docker是時(shí)下最火爆的虛擬機(jī),正在被各大云主機(jī)服務(wù)商所采用,需要的朋友可以參考下2015-04-04Python接口測(cè)試環(huán)境搭建過(guò)程詳解
這篇文章主要介紹了Python接口測(cè)試環(huán)境搭建過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06