Implementations of flask response in many format notation
Project description
Implementations of flask response in many formats: base64, csv, json, xml, html, yaml. You can create your own builder extending Builder class and registering it with register_builder method.
Every builders are registered as attribute of ResponseBuilder class so you can invoke method from this class with builder’s name and it automatically create a response with that builder.
Also you can used Builder without response by invoking static methods: to_me, to_dict.
Based on PyYAML, xmltodict, dicttoxml. See their documentation for other options.
Decorator for http response status 204 NO_CONTENT
Response based on Accept header of request
Response based on format parameter (query string)
template_or_json: response based on xhr request (deprecated: works only with old js library)
Support for case notation checker and converter, see Case utility class.
Transformer: utility class for data notation conversion
Quickstart
Install flask_response_builder using pip:
$ pip install Flask-ResponseBuilder
Then import it into your project:
$ from flask_response_builder import ResponseBuilder
Example usage
app = Flask(__name__)
app.config['RB_HTML_DEFAULT_TEMPLATE'] = 'response.html'
rb = ResponseBuilder(app)
@app.route('/nocontent')
@rb.no_content
def nocontent():
pass
@app.route('/xhr')
@rb.template_or_json('response.html')
def test_xhr():
return data
@app.route('/onaccept')
@rb.on_accept(acceptable=['application/json', 'application/xml'])
def test_accept():
return data
@app.route('/format')
@rb.on_format()
def test_format():
return data
@app.route('/decorator')
@rb.response('json')
def test_decorator():
return data, 200, {'header': 'header'}
For advanced example usage see test.py file.
Configuration
RB_DEFAULT_RESPONSE_FORMAT: (default: ‘application/json’)
RB_DEFAULT_ACCEPTABLE_MIMETYPES: (default: a list of all supported mimetypes)
RB_DEFAULT_ENCODE: (default: ‘utf-8’)
RB_DEFAULT_DUMP_INDENT: (default: None)
RB_FORMAT_KEY: (default: ‘format’)
RB_BASE64_ALTCHARS: (default: None)
RB_HTML_DEFAULT_TEMPLATE: (default: None)
RB_HTML_AS_TABLE: (default: True)
RB_YAML_ALLOW_UNICODE: (default: True)
RB_CSV_DEFAULT_NAME: (default: ‘filename’)
RB_CSV_DELIMITER: (default: ‘;’)
RB_CSV_QUOTING_CHAR: (default: ‘”’)
RB_CSV_DIALECT: (default: ‘excel-tab’)
RB_XML_CDATA: (default: False)
RB_XML_ROOT: (default: ‘ROOT’)
RB_FLATTEN_PREFIX: (default: ‘’)
RB_FLATTEN_SEPARATOR: (default: ‘_’)
License MIT
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
Hashes for Flask-ResponseBuilder-2.0.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6b5e72dbbea15828d53b175ba32fce0058ea6eecbbe257776e57098e49fba07 |
|
MD5 | dd7b308b1d194ee5722548a18e27b157 |
|
BLAKE2b-256 | f05e9205d69af5f3aff288ea7996852f5582b4cf7150d722eecdc289ac4eb8a8 |