MIMETypes registration mapping
The MIMETypes object class provides a single point to hold onto all the registered mimetypes, and their association extensions. It’s used by the mimetypes function to determine the appropriate content type to return to a client.
Creates a MIMEType alias to a full mimetype
These aliases may not include /’s. Examples include html->text/html, xml->application/xml.
Loads a default mapping of extensions and mimetypes
These are suitable for most web applications by default. Additional types can be added with the using the mimetypes module.
Check the PATH_INFO of the current request and clients HTTP Accept to attempt to use the appropriate mime-type
If a content-type is matched, the appropriate response content type is set as well.
This works best with URLs that end in extensions that differentiate content-type. Examples: http://example.com/example, http://example.com/example.xml, http://example.com/example.csv
Since browsers generally allow for any content-type, but should be sent HTML when possible, the html mimetype check should always come first, as shown in the example below.
Example:
# some code likely in environment.py
MIMETypes.init()
MIMETypes.add_alias('html', 'text/html')
MIMETypes.add_alias('xml', 'application/xml')
MIMETypes.add_alias('csv', 'text/csv')
# code in a controller
def somaction(self):
# prepare a bunch of data
# ......
# prepare MIMETypes object
m = MIMETypes(request.environ)
if m.mimetype('html'):
return render('/some/template.html')
elif m.mimetype('atom'):
return render('/some/xml_template.xml')
elif m.mimetype('csv'):
# write the data to a csv file
return csvfile
else:
abort(404)
Powered by Pylons - Contact Administrators
Comments (1)
“Check the PATH_INFO of the current request and clients HTTP Accept” should be something like “Check the PATH_INFO of the current request and client’s ‘HTTP Accept’”
Suggest an addition to the docs, or report errors. Note that we will delete documentation fixes as they're applied.
You must login before you can comment.