Skip to main content

Implements a unicode subclass that supports HTML strings:

>>> from markupsafe import Markup, escape
>>> escape("<script>alert(document.cookie);</script>")
Markup(u'&lt;script&gt;alert(document.cookie);&lt;/script&gt;')
>>> tmpl = Markup("<em>%s</em>")
>>> tmpl % "Peter > Lustig"
Markup(u'<em>Peter &gt; Lustig</em>')

If you want to make an object unicode that is not yet unicode but don’t want to lose the taint information, you can use the soft_unicode function:

>>> from markupsafe import soft_unicode
>>> soft_unicode(42)
u'42'
>>> soft_unicode(Markup('foo'))
Markup(u'foo')

Objects can customize their HTML markup equivalent by overriding the __html__ function:

>>> class Foo(object):
...  def __html__(self):
...   return '<strong>Nice</strong>'
...
>>> escape(Foo())
Markup(u'<strong>Nice</strong>')
>>> Markup(Foo())
Markup(u'<strong>Nice</strong>')

Since MarkupSafe 0.10 there is now also a separate escape function called escape_silent that returns an empty string for None for consistency with other systems that return empty strings for None when escaping (for instance Pylons’ webhelpers).

If you also want to use this for the escape method of the Markup object, you can create your own subclass that does that:

from markupsafe import Markup, escape_silent as escape

class SilentMarkup(Markup):
    __slots__ = ()

    @classmethod
    def escape(cls, s):
        return cls(escape(s))

Metadata

Release files for MarkupSafe 0.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for MarkupSafe 0.16
File Size Uploaded
MarkupSafe-0.16.tar.gz 11.5 kB Details

Release files / MarkupSafe-0.16.tar.gz

Download URL MarkupSafe-0.16.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
abb017f327ffcf0bd012cf9fa98700aa9d079d4e192c81c9ae01f9d795748f8d
BLAKE2b-256 checksum
How to use checksums
44ee37bd0844418acd5fb9c588aae835f38b9b7c4cd0c9b95c78c8ebb74bb65a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page