在本文中,我们将使用python的tinyhtml模块在python中生成和使用HTML文档
如何使用 python 将原始 HTML 写入文件?
您可以通过手动创建 HTML 字符串并将其写入具有扩展名的文件来在 Python 中生成 HTML 文档.html
。下面是一个生成带有标题、标头和正文的 HTML 文档的简单示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#Storing the entire HTML document in html variable html = """ <html> <head> <title>AskPython</title> </head> <body> <h1>Welcome to AskPython</h1> <p>This is an article about generating HTML docs using python</p> </body> </html> """ #using file management with open ( "askpython.html" , "w" ) as f: f.write(html) |
在上面的代码中,我们使用了“w”模式的 open() 函数,该函数将 HTML 写入文件“askpython.html”中,这将在同一目录中创建一个名为“askpython.html”的文件,其中包含以下内容:
1
2
3
4
5
6
7
8
9
|
< html > < head > < title >AskPython</ title > </ head > < body > < h1 >Welcome to AskPython</ h1 > < p >This is an article about generating HTML docs using python</ p > </ body > </ html > |
要了解有关文件处理的更多信息,请访问文章Python 文件处理
HTML 文档的tinyhtml 模块
tinyhtml
是一个 python 库,可以安全地渲染并提供非常基本的 HTML 解析功能(来自 Python 表达式的紧凑 HTML5)。在本文中,我们将安装并使用tinyhtml库提供的一些有用的功能:html()
、、render()
和h()
frag()
安装tinyhtml
tinyhtml
我们将首先使用 pip 在 python 环境中安装
1
|
pip install tinyhtml |
1. 使用 html() 和 render() 声明和渲染基本 HTML
html()
用于声明 HTML 文档。让我们从一个简单的例子开始:
1
2
3
4
|
from tinyhtml import html html_content = html(lang = "en" )() print (html_content.render()) |
解释:
- 该代码创建一个 HTML
html
元素,并将lang
属性设置为"en"
。 - 函数调用后
()
的html
表示没有子元素可添加到该html
元素。因此输出只包含一个带有属性的 HTML 标签 render
然后对变量调用 () 方法,html_content
将html
元素转换为 HTML 字符串。- 最后,使用该函数将生成的 HTML 字符串打印到控制台
print
。
输出:
1
|
<!DOCTYPE html><html lang= "en" >< /html > |
2. 在Python中使用h()函数生成HTML代码
函数 h() 是最有用的函数,它提供属性、公共组件和 void/自关闭元素的渲染。
例子:
1
2
3
4
5
6
7
8
|
from tinyhtml import html , h html_content = html(lang = "en" )( h( "h1" )( "Lorem ipsum" ), h( "p" )( "dolor sit amet." ), h ( "br" ) ) print (html_content.render()) |
解释:
- 上面的代码创建了一个 HTML 文档字符串,
html
其中包含一个元素,其中包含三个子元素:h1
带有文本“Lorem ipsum”的元素。p
带有文本“dolor sat amet”的元素。- 一个
br
元素,代表 HTML 中的换行符。
- 该
h
函数用于创建h1
和p
元素,br
元素是直接使用HTML标签创建的。 render
对变量调用该方法html_content
,将html
元素及其子元素转换为 HTML 字符串,并使用该print
函数打印生成的 HTML 字符串。
输出:
1
|
<!DOCTYPE html><html lang= "en" ><h1>Lorem ipsum< /h1 ><p>dolor sit amet.< /p ><br>< /html > |
输出包含一个 HTML 文档字符串,其中包含一个属性设置为 的html
元素、一个带有文本“Lorem ipsum”的元素、一个带有文本“dolor sat amet.”的元素和一个元素。lang
"en"
h1
p
br
3.使用frag()函数生成HTML代码片段
函数 frag() 用于循环元素集。
1
2
3
4
5
6
7
|
from tinyhtml import h ,frag content = frag( h( "h1" )( "Lorem ipsum" ), h( "p" )( "dolor sit amet." ), ) print (content.render()) |
解释:
- 该代码创建一个 HTML 片段,其中包含一个
h1
带有文本“Lorem ipsum”的元素和一个p
带有文本“dolor sat amet.”的元素。 - 该
h
函数用于创建h1
和p
元素。 frag
然后使用两个参数调用该函数 – 之前创建的h1
和p
元素。这将创建一个包含这两个元素的 HTML 片段。render
对变量调用该方法content
并打印结果字符串。
输出:
1
|
<h1>Lorem ipsum< /h1 ><p>dolor sit amet.< /p > |
输出是一个 HTML 片段字符串,其中包含一个h1
带有文本“Lorem ipsum”的元素和一个p
带有文本“dolor sat amet.”的元素。
4. 添加条件语句
您可以使用条件语句根据某些外部条件生成数据
1
2
3
4
5
6
7
8
9
10
11
12
|
from tinyhtml import h score = input ( "Input your score(out of 100):" ) passing_marks = 33 conditional_html = h( "h1" )( h( "p" )( "Passed" ) if int (score) > passing_marks else "Failed" , h( "p" )( "Thank you!" ) ) print (conditional_html) |
解释:
- 该代码提示用户输入他们的分数(满分 100 分),输入值存储在变量中
score
。及格分数设置为33分。 - 然后,该代码创建一个包含一个
h1
元素和两个子p
元素的 HTML 文档字符串。 - 如果变量在转换为整数后大于 33 ( ) ,则子元素
p
具有文本“通过” 。score
passing_marks
- 如果
score
变量小于或等于passing_marks
,则使用文本“失败”而不是“通过”。
输出:
1
2
|
Input your score(out of 100):45 <h1><p>Passed< /p ><p>Thank you!< /p >< /h1 > |
5. 为标签添加类
为了初始化一个类,我们使用“klass”运算符。尾随下划线还会添加到可能与 Python 保留关键字的名称相匹配的其他标签中。
1
2
3
4
5
6
7
|
from tinyhtml import h html_doc = h( "h1" )( h( "p" , klass = "p1" )( "Sample text" ), h( "input" , for_ = "firstName" )() ) print (html_doc) |
这里我们将类“p1”分配给段落标签,并使用“klass”而不是“class”。对于输入标签,我们使用了“for_”,它代表标签“for”,它是Python中的保留关键字。您可以在给定的输出中看到正确的 HTML
输出:
1
|
<h1><p class= "p1" >Sample text< /p ><input for = "firstName" >< /input >< /h1 > |
结论
在本文中,我们使用tinyhtml 创建了HTML 文档。我们提供了一些基本标签,您可以根据需要进行更改。另外,阅读Pandas to html。