文字列のフォーマット—MarkupSafeのドキュメント
提供:Dev Guides
Markupsafe/docs/2.0.x/formatting
文字列のフォーマット
Markup クラスはフォーマット文字列として使用できます。 マークアップ文字列にフォーマットされたオブジェクトが最初にエスケープされます。
フォーマット方法
format
メソッドは、標準のstr.format()
動作を拡張して、__html_format__
メソッドを使用します。
- オブジェクトに
__html_format__
メソッドがある場合、__format__
メソッドの代わりとして呼び出されます。 指定されている場合は、フォーマット指定子が渡されます。 このメソッドは、文字列または Markup インスタンスを返す必要があります。 - オブジェクトに
__html__
メソッドがある場合、そのオブジェクトが呼び出されます。 フォーマット指定子が渡され、クラスが__html__
を定義したが、__html_format__
は定義しなかった場合、ValueError
が発生します。 - それ以外の場合は、Pythonのデフォルトの形式の動作が使用され、結果はエスケープされます。
たとえば、name
をspan
タグでラップし、"link"
形式指定子を使用するときにリンクを追加するUser
を実装するには、次のようにします。
フォーマット文字列構文に関するPythonのドキュメントを参照してください。
printfスタイルのフォーマット
エスケープする以外に、パーセントの書式設定に関連する特別な動作はありません。
printfスタイルのフォーマットに関するPythonのドキュメントを参照してください。