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
Built Distribution
Hashes for Flask-ResponseBuilder-2.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b25d65604de9497bea53be43c02672abbcac0d6b46869a4500294ab23039930b |
|
MD5 | 01997c33f87330bcc12b203db9acdf19 |
|
BLAKE2b-256 | 24f00dd33e0d62542f84b722e3c4a737910725b9a7481854a2519a0cb1cbc669 |
Hashes for Flask_ResponseBuilder-2.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bcf903848c3d1be3f8b7d9c96f51c25a5e97775aecf920ad10baf02cd4d9faa |
|
MD5 | 6f8f63677d4c6f117aca61d17fbc7d16 |
|
BLAKE2b-256 | 63b7f31fecbb31053f5c6e9d846fd3872bdaa1bb56b2e8ca69a0d5fd0057d7fa |