Rigid MVC content negotiation for Flask
Project description
This is Holster, an extension for Flask that makes RESTfulness and content negotiation easy:
from flask import Flask from flask.ext.holster.main import init_holster app = Flask(__name__) init_holster(app) @app.holster("/test") def test(): from math import pi return { "data": "Hello from Holster!", "nested": { "numeric": 0, "floating": pi, "unicode": u"Espa\xf1ol", }, "secure": { "xss-sword": ';!--"<XSS>=&{()}', } } if __name__ == "__main__": app.run()
This application will automatically figure out which data type to return, using a combination of user agent parameters and URL extensions. If a user agent requests “/test.html” they will get HTML, but if they request “/test.json” they will get JSON instead. No longer do you have to worry about constructing sites with separate interfaces for HTML and JSON; one holstered site can do it all!
Holster currently has default renderers for the following formats:
HTML
JSON
Plaintext
YAML
Users can also override renderers for any format or MIME type they would like, with with_template:
from my_sweet_website import PNGHeaderMaker from flask.ext.holster.views import with_template @app.holster("/customized") @with_template("image/png", PNGHeaderMaker) def custom(): return {"header": "Welcome to my site!"}
Changelog
0.2
Compatibility: Don’t use itertools, for Python 2.5
Enhancement: Split holsterizing views into two pieces, for easier customization
Feature: New helpers module for helping write customized views
1.1.2
Feature: Changelog
Feature: Documentation
Feature: Optional HOLSTER_COMPRESS setting for automatically compressing response data
Enhancement: Vary header is filled out
Change: Improved names of view objects
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file Flask-Holster-0.2.tar.gz
.
File metadata
- Download URL: Flask-Holster-0.2.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a036d0ef410fa76826c415e7f9a5dbf8e088b6970b212eeb11371ce863b8b84 |
|
MD5 | de38cd0b7778328f32e74cddfc7a1ba4 |
|
BLAKE2b-256 | 51bcb1493df8ae4062438a25d46b57e27feaad3edbf0bb9cfde949abe6e7c966 |