tornado.escape — Escaping and string manipulation

HTML,JSON,URL等的转义/转义方法.

还包括一些其他随时间推移而逐渐流行的其他字符串操作功能.

Escaping functions

tornado.escape.xhtml_escape(value: Union[str, bytes]) → str[source]

转义字符串,以便在HTML或XML中有效.

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

在版本3.2中进行了更改:在转义字符列表中添加了单引号.

tornado.escape.xhtml_unescape(value: Union[str, bytes]) → str[source]

取消转义XML转义的字符串.

tornado.escape.url_escape(value: Union[str, bytes], plus: bool = True) → str[source]

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

如果plus为true(默认设置),则空格将表示为" +"而不是"%20". 这适用于查询字符串,但不适用于URL的路径部分. 请注意,此默认设置与Python的urllib模块相反.

3.1版的新功能: The plus argument

tornado.escape.url_unescape(value: Union[str, bytes], encoding: Optional[str] = 'utf-8', plus: bool = True) → Union[str, bytes][source]

从URL解码给定值.

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

如果编码为"无",则结果将为字节字符串. 否则,结果是指定编码的unicode字符串.

如果plus为true(默认值),则加号将解释为空格(字面加号必须表示为"%2B"). 这适用于查询字符串和表单编码的值,但不适用于URL的路径部分. 请注意,此默认设置与Python的urllib模块相反.

3.1版的新功能: The plus argument

tornado.escape.json_encode(value: Any) → str[source]

JSON编码给定的Python对象.

tornado.escape.json_decode(value: Union[str, bytes]) → Any[source]

返回给定JSON字符串的Python对象.

同时支持strbytes输入.

Byte/unicode conversions

tornado.escape.utf8(value: Union[None, str, bytes]) → Optional[bytes][source]

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

如果参数已经是字节字符串或"无",则返回原样. 否则,它必须是unicode字符串,并编码为utf8.

tornado.escape.to_unicode(value: Union[None, str, bytes]) → Optional[str][source]

Converts a string argument to a unicode string.

如果参数已经是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[source]

走一个简单的数据结构,将字节字符串转换为unicode.

支持列表,元组和字典.

Miscellaneous functions

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[source]

使用链接将纯文本转换为HTML.

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

Parameters:

  • shorten :短网址将被缩短以显示.

  • extra_params :要包含在link标记中的额外文本,或以链接为参数并返回额外文本的可调用对象,例如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 :仅链接包含协议的网址. 如果为False,则还将链接诸如www.facebook.com之类的网址.

  • permitted_protocols :应linkified协议,例如列表(或组) linkify(text, permitted_protocols=["http", "ftp", "mailto"]) 包含诸如javascript协议是非常不安全的.

tornado.escape.squeeze(value: str) → str[source]

将所有空格字符序列替换为一个空格.