
(データを)エスケープする
HTML
を最初に作成したときに、
HTML
の設計者は
<>
(そして
HTML
にとっ
て特殊な意味を持つその他の文字)を表示したい
Web
ページデザイナーもいるこ
とはわかっていました。そのため、
HTML
設計者はエスケープという概念を思い
つきました。特殊文字をエンコードし、
HTML
として解釈せずに
Web
ページに表
示できるようにするのです。特殊文字ごとに変換方法を決めました。この考え方
はシンプルです。特殊文字
<
を
<
、
>
を
>
のように決めます。生のデータ
の代わりにこのような変換データを送ると、ブラウザで処理されます。
<
と
>
を無
視せずに表示し、その間のすべてのテキストも表示します。
Flask
には
escape
という関数が含まれています(実際には
Jinja2
から継承して
います)。生のデータを指定すると、
escape
はそのデータを
HTML
エスケープ
文字に変換します。
>>>
プロンプトで
escape
を試し、その動作の感触をつかん
でみましょう。
>>> from flask import escape
>>> escape('This is a Request')
Markup('This is a Request')
escape
関数は
Markup
オブジェクトを返します。
Markup
オブジェクトは、
(実際に)文字列のように振る舞います。
escape
に特殊文字を含む文字列を渡す
と、次のように変換します。
>>> escape('This is a <Request>')
Markup('This ...