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.