Tornado 轉(zhuǎn)義和字符串操作

2022-03-09 09:42 更新

HTML、JSON、URL 等轉(zhuǎn)義和tornado.escape.utf8(value: Union[None, str, bytes]) → Optional[bytes]取消轉(zhuǎn)義的方法。

還包括隨著時(shí)間的推移逐漸出現(xiàn)的一些其他雜項(xiàng)字符串操作函數(shù)。

轉(zhuǎn)義函數(shù)

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

轉(zhuǎn)義字符串,使其在 HTML 或 XML 中有效。

轉(zhuǎn)義字符 ?<?、?>?、?"?、?'? 和 ?&?。在屬性值中使用時(shí),轉(zhuǎn)義字符串必須用引號引起來。

在 3.2 版更改: 將單引號添加到轉(zhuǎn)義字符列表中。

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

取消轉(zhuǎn)義 XML 轉(zhuǎn)義字符串。

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

返回給定值的 URL 編碼版本。

如果?plus?為真(默認(rèn)),空格將表示為“+”而不是“%20”。 這適用于查詢字符串,但不適用于 URL 的路徑部分。 請注意,此默認(rèn)值與 Python 的 urllib 模塊相反。

3.1 版新功能:?plus?參數(shù)

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

從 URL 解碼給定的值。

參數(shù)可以是字節(jié)或 unicode 字符串。

如果 ?encoding為 None,則結(jié)果將是一個(gè)字節(jié)字符串。 否則,結(jié)果是指定編碼的 unicode 字符串。

如果?plus?為真(默認(rèn)值),加號將被解釋為空格(文字加號必須表示為“%2B”)。 這適用于查詢字符串和表單編碼值,但不適用于 URL 的路徑組件。 請注意,此默認(rèn)值與 Python 的 urllib 模塊相反。

3.1 版新功能:?plus?參數(shù)

tornado.escape.json_encode(value: Any) → str

JSON 編碼給定的 Python 對象

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

返回給定 JSON 字符串的 Python 對象。

支持 ?str和 ?bytes輸入。

字節(jié)和Unicode 轉(zhuǎn)換

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

將字符串參數(shù)轉(zhuǎn)換為字節(jié)字符串。

如果參數(shù)已經(jīng)是字節(jié)字符串或 None,則原樣返回。 否則它必須是一個(gè) unicode 字符串并且被編碼為 utf8。

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

將字符串參數(shù)轉(zhuǎn)換為 unicode 字符串。

如果參數(shù)已經(jīng)是 unicode 字符串或 None,則原樣返回。 否則它必須是一個(gè)字節(jié)串并被解碼為 utf8。

tornado.escape.to_basestring()

將字節(jié)或 unicode 字符串轉(zhuǎn)換為 ?str類型。 這些函數(shù)用于幫助從 Python 2 過渡到 Python 3,但現(xiàn)在已棄用 ?to_unicode的別名。

tornado.escape.recursive_unicode(obj: Any) → Any

走一個(gè)簡單的數(shù)據(jù)結(jié)構(gòu),將字節(jié)字符串轉(zhuǎn)換為 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

將純文本轉(zhuǎn)換為帶有鏈接的 HTML。

例如:?linkify("Hello http://tornadoweb.org!")? 將返回 ?Hello <a  rel="external nofollow" target="_blank" >http://tornadoweb.org</a>!?

參數(shù):

?shorten?:將縮短長網(wǎng)址以進(jìn)行顯示。

?extra_params?:包含在鏈接標(biāo)記中的額外文本,或?qū)㈡溄幼鳛閰?shù)并返回額外文本的可調(diào)用對象,例如: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?:僅鏈接包含協(xié)議的 url。 如果這是 False,則 www.facebook.com 等 URL 也將被鏈接。

?allowed_protocols?:應(yīng)該鏈接的協(xié)議列表(或集合),例如?linkify(text,allowed_protocols=[“http”,“ftp”,“mailto”])?。 包含諸如javascript之類的協(xié)議是非常不安全的。

tornado.escape.squeeze(value: str) → str

用單個(gè)空格替換所有空白字符序列


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號