Skip to main content

Implements a XML/HTML/XHTML Markup safe string for Python

Project description

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. (On Python 3 you can also use soft_str which is a different name for the same 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))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

MarkupSafe-0.17.tar.gz (11.7 kB view details)

Uploaded Source

File details

Details for the file MarkupSafe-0.17.tar.gz.

File metadata

  • Download URL: MarkupSafe-0.17.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for MarkupSafe-0.17.tar.gz
Algorithm Hash digest
SHA256 bdda8df9395253d06af11ce33778aed4d5f297cb1d8cb380ab955c1a04bbb9d4
MD5 61d5edc130e3242cfaff9fd9fdefde8f
BLAKE2b-256 04d021c43bb0a9c9b31c8bfeb3676e12ec0aae2b71632497b6bd6505c980a38a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page