简单、优雅的html、xhtml和xml生成

pml的Python项目详细描述


构建HTML

要构造HTML,请从 html.html() 的实例开始。添加 通过访问标记在该对象上的属性来标记。例如:

>>> from html import HTML
>>> h = HTML()
>>> h.p('Hello, world!')
>>> print(h)
<p>Hello, world!</p>

创建HTML时,可以提供标记名和一些文本内容 实例:

>>> h = HTML('html', 'text')
>>> print(h)
<html>text</html>

稍后还可以使用标记的 .text() 方法附加文本内容 或者使用增广加法。任何特定于HTML的字符( <>&;" ) 在文本中,将根据需要对HTML安全进行转义,除非 escape=false 已通过。下面的每个示例都使用一个新的 html 实例:

>>> p = h.p('hello world!\n')
>>> p.br
>>> p.text('more &rarr; text', escape=False)
>>> p += ' ... augmented'
>>> h.p
>>> print(h)
<p>hello, world!<br>more &rarr; text ... augmented</p>
<p>

还要注意,顶级的html对象通过 违约。最后在上面,您将看到一个空的段落标记 没有内容没有结束标记。

如果标记应该有子标记,则有两个选项。您可以添加 子标签直接在标签上:

>>> l = h.ol
>>> l.li('item 1')
>>> l.li.b('item 2 > 1')
>>> print(h)
<ol>
<li>item 1</li>
<li><b>item 2 &gt; 1</b></li>
</ol>

注意,列表(和表)的默认行为是添加换行符 在子标记之间生成更好的输出。你也可以从中看到 例如 l.li.b 中标记的链接

标记属性也可以传入:

>>> t = h.table(border='1')
>>> for i in range(2):
>>>   r = t.tr
>>>   r.td('column 1')
>>>   r.td('column 2')
>>> print(t)
<table border="1">
<tr><td>column 1</td><td>column 2</td></tr>
<tr><td>column 1</td><td>column 2</td></tr>
</table>

上面的一个变体是使用标记作为上下文变量。这个 以下内容在功能上与第一个列表结构相同,但是 使用稍微不同的sytax强调html结构:

>>> with h.ol as l:
...   l.li('item 1')
...   l.li.b('item 2 > 1')

您可以通过传递 newlines=false来关闭/打开添加新行 true 在创建时标记(或 html 实例):

>>> l = h.ol(newlines=False)
>>> l.li('item 1')
>>> l.li('item 2')
>>> print(h)
<ol><li>item 1</li><li>item 2</li></ol>

由于我们不能使用 作为关键字,库识别 klass 作为替代:

>>> print(h.p(content, klass="styled"))
<p class="styled">content</p>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
未检测到“空格”的java ASCII码   音频如何在Java中设置SourceDataLine的音量   java MyBatissSpringBoot无法使用作为bean注入的数据源   Java字谜递归列表<List<String>>仅存储空列表<Strings>   java显示30px高的JPanel,然后用minecraft填充剩余空间   java JOGL平滑度   Java:按完整与否对1d对象数组进行排序   arraylist仅当java结构不存在时才将对象添加到java结构中   无法初始化java渲染库在安卓 studio 4.1.1上出现错误   java SpringBoot ClassCastException   java解析文本文件,基于字数   java=运算符引发异常   java使点可拖动并存储新坐标JavaFx   JavaWebSphereApplicationServer:EJB模块和JMS路由器