网站首页 > 知识剖析 正文
在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函数。。。
猜你喜欢
- 2024-12-29 自定义代码生成器(上) 如何自制代码
- 2024-12-29 网站安全防护怎么做? 网站安全怎么防御
- 2024-12-29 终于弄懂了dom型xss和反射型xss的区别
- 2024-12-29 CTF&爬虫:掌握这些特征,一秒识别密文加密方式
- 2024-12-29 php json_decode返回null phpajax返回json数据
- 2024-12-29 DOM 操作之属性操作 dom操作元素属性
- 2024-12-29 【php学习笔记】php中htmlentities()方法使用笔记
- 2024-12-29 搜索专业化:必应提供计算机编码/解码器查询服务
- 2024-12-29 全网最细,各种特殊字符快捷键!花了7天7夜汇总,收藏不亏!
- 2024-12-29 常见编码总结 各种编码的含义
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)