Implementations of flask response in many formats
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.
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') @ResponseBuilder.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
Built Distribution
Hashes for Flask-ResponseBuilder-2.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9146e01abbbc909b90f2d0ef764b9534af5ed1f0922aa1eec18db271a25a23b4 |
|
MD5 | 895c886b37b1379e556d28efb333e25e |
|
BLAKE2b-256 | a42840ca800df92b604bf0280ddcf7e01a74d80459e85afb2c68cb3f48e860c1 |
Hashes for Flask_ResponseBuilder-2.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2fcaeff11d2ab5e4dd0ff2887fede87f0d0ff051297b0a388d28b05bb15489d2 |
|
MD5 | 8c07cac232328ad21a1f233c68e9ef43 |
|
BLAKE2b-256 | c6b5a198ce9f74e3d762b8fbbdb99b2c0a2a17bf0a54e91db3bd507593003867 |