Flask-Pushrod is a simple helper for Flask for doing content negotiation (primarily for running the API and the website on the same code-base, with as little separate handling as possible).
Flask-Pushrod is available on PyPI, so to install the latest stable version simply run
pip install Flask-Pushrod
or
easy_install Flask-Pushrod
A simple hello world app in Pushrod would look like this:
from flask import Flask, render_template from flask.ext.pushrod import Pushrod, pushrod_view import random app = Flask(__name__) Pushrod(app) @app.route("/") @pushrod_view(jinja_template="hello.html") def hello(): return { 'greeting': random.choice(("Hi", "Heya")) } if __name__ == "__main__": app.run()
This would, depending on the request, return either the greeting message in JSON or render it through the Jinja2 hello.html template.
$ tox
More advanced documentation is available on Read The Docs.