tornado.escape ---转义和字符串操作

HTML、JSON、URL和其他的转义/取消转义方法。

还包括其他一些随时间推移逐渐出现的杂项字符串操作函数。

转义函数

tornado.escape.xhtml_escape(value: Union[str, bytes]) str[源代码]

转义字符串,使其在HTML或XML中有效。

转义字符 <>"'& . 在属性值中使用转义字符串时,必须用引号括起来。

在 3.2 版更改: 将单引号添加到转义字符列表中。

tornado.escape.xhtml_unescape(value: Union[str, bytes]) str[源代码]

取消对XML转义字符串的转义。

tornado.escape.url_escape(value: Union[str, bytes], plus: bool = True) str[源代码]

返回给定值的URL编码版本。

如果 plus 为真(默认值),空格将用“+”代替“%20”。这适用于查询字符串,但不适用于URL的路径组件。注意,这个默认值与python的urllib模块相反。

3.1 新版功能: 这个 plus 参数

tornado.escape.url_unescape(value: Union[str, bytes], encoding: None, plus: bool = True) bytes[源代码]
tornado.escape.url_unescape(value: Union[str, bytes], encoding: str = 'utf-8', plus: bool = True) str

从URL解码给定值。

参数可以是字节或Unicode字符串。

如果编码为“无”,则结果将是一个字节字符串。否则,结果是指定编码的Unicode字符串。

如果 plus 为真(默认值),加号将解释为空格(文字加号必须表示为“%2b”)。这适用于查询字符串和表单编码值,但不适用于URL的路径组件。注意,这个默认值与python的urllib模块相反。

3.1 新版功能: 这个 plus 参数

tornado.escape.json_encode(value: Any) str[源代码]

JSON对给定的python对象进行编码。

tornado.escape.json_decode(value: Union[str, bytes]) Any[源代码]

返回给定JSON字符串的python对象。

既支持又支持 strbytes 输入。

字节/Unicode转换

tornado.escape.utf8(value: bytes) bytes[源代码]
tornado.escape.utf8(value: str) bytes
tornado.escape.utf8(value: None) None

将字符串参数转换为字节字符串。

如果参数已经是字节字符串或无,则返回原样。否则,它必须是Unicode字符串并编码为UTF8。

tornado.escape.to_unicode(value: str) str[源代码]
tornado.escape.to_unicode(value: bytes) str
tornado.escape.to_unicode(value: None) None

将字符串参数转换为Unicode字符串。

如果参数已经是unicode字符串或无,则返回的值不变。否则,它必须是一个字节字符串,并被解码为utf8。

tornado.escape.native_str()
tornado.escape.to_basestring()

将字节或Unicode字符串转换为类型 str . 这些函数用于帮助从python 2转换为python 3,但现在不推荐使用 to_unicode .

tornado.escape.recursive_unicode(obj: Any) Any[源代码]

遍历简单的数据结构,将字节字符串转换为Unicode。

支持列表、元组和字典。

其他功能

tornado.escape.linkify(text: Union[str, bytes], shorten: bool = False, extra_params: Union[str, Callable[[str], str]] = '', require_protocol: bool = False, permitted_protocols: List[str] = ['http', 'https']) str[源代码]

用链接将纯文本转换为HTML。

例如: linkify("Hello http://tornadoweb.org!") 会回来 Hello <a href="http://tornadoweb.org">http://tornadoweb.org</a>!

参数:

  • shorten :长URL将缩短以供显示。

  • extra_params :要包含在链接标记中的额外文本,或将链接作为参数并返回额外文本的可调用文件,例如 linkify(text, extra_params='rel="nofollow" class="external"') ,或:

    def extra_params_cb(url):
        if url.startswith("http://example.com"):
            return 'class="internal"'
        else:
            return 'class="external" rel="nofollow"'
    linkify(text, extra_params=extra_params_cb)
    
  • require_protocol :仅链接包含协议的URL。如果这是错误的,那么像www.facebook.com这样的网址也将被链接。

  • permitted_protocols :应链接的协议列表(或一组),例如 linkify(text, permitted_protocols=["http", "ftp", "mailto"]) . 包含诸如 javascript .

tornado.escape.squeeze(value: str) str[源代码]

用一个空格替换所有空格字符序列。