Python Tinyhtml – 使用 Python 创建 HTML 文档

在本文中,我们将使用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())

解释:

  • 该代码创建一个 HTMLhtml元素,并将lang属性设置为"en"
  • 函数调用后()html表示没有子元素可添加到该html元素。因此输出只包含一个带有属性的 HTML 标签
  • render然后对变量调用 () 方法html_contenthtml元素转换为 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函数用于创建h1p元素,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"h1pbr

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函数用于创建h1p元素。
  • frag然后使用两个参数调用该函数 – 之前创建的h1p元素。这将创建一个包含这两个元素的 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具有文本“通过” 。scorepassing_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

参考

https://pypi.org/project/tinyhtml/