领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

Python入门系列20-Python标准库之html

nixiaole 2024-12-29 05:02:00 知识剖析 12 ℃

在Python提供的标准库中有一个名为html的标准库,该标准库提供的功能很简单,仅仅是把一些组成标签的尖括号或者是一些特殊字符转换成实体字符。

这也是Python本身秉持的设计哲学,就是一个函数、一个模块或者一个标准库只专注于一件事或者是某一方面的事。



我们先来大概了解该标准的组成


>>> import html
>>> dir(html)
['__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '_charref', '_html5', '_invalid_charrefs', '_invalid_codepoints', '_re', '_replace_charref', 'entities', 'escape', 'unescape']

我们不管那些以_开头的东东,把注意放在escape和unescape这两个函数上。

假设我有一些HTML,我担心其中会包含一些可能危险的<script>标记。这时有一种方法就是把标签的尖括号转换成实体符号,从以上两个函数的命名可以大概了解相应的功能。

没错escape函数就是转义的意思,就是把一些字符转换为实体字符。比如“<”会转换成“&+lt”、“>”会转换成“&+gt”等等。(加号表示连接两边的符号)

>>> import html
>>> help(html.escape)
Help on function escape in module html:

escape(s, quote=True)
    Replace special characters "&", "<" and ">" to HTML-safe sequences.
    If the optional flag quote is true (the default), the quotation mark
    characters, both double quote (") and single quote (') characters are also
    translated.

查看该函数的帮助可以了解到,它会把特定字符“&”,“<”,“>”等转换成HTML安全的实体字符。该函数还有一个可选的标记参数,默认为True,意思就是该函数默认为把引用符号(“”、‘’)等一并转换。

>>> import html
>>> demo = "<h1>Hello World!,'</h1>"
>>> html.escape(demo,quote = False)
"<h1>Hello World!,'mangfu'</h1>"

上面的例子中,我设置可选参数quote为False,则它并不会对引号(‘’)进行转换。

>>> import html
>>> demo = "<h1>Hello World!,'</h1>"
>>> html.escape(demo)
'<h1>Hello World!,'mangfu'</h1>'

上面的例子中,我使用该函数默认的可选参数,从结果中可以看出函数输出已经对引号(‘’)进行转换。

至于unescape函数,看该函数的名字就知道它的作用跟escape函数恰恰相反。

可能大家对这些功能还不是很熟悉,但是这在Web开发方面是很重要的,如果你以后学习Django来搭建自己的网站,会碰到这个功能的。

大家可以动手试试unescape函数。。。

最近发表
标签列表