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.
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.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 358ba75b395a96504e320ebe33a372a759ee61a3ad659b125b047f3a54778b70 |
|
MD5 | 152bb9d33b24e9242eb9227e23f53b4d |
|
BLAKE2b-256 | 32a70206620e1a69182c58ea2970452d9880a2c51fd79ca3ddf96839431166cb |
Hashes for Flask_ResponseBuilder-2.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c5171a0dd78e15f8f52e522a978dc18b8a9ef386078d8997f3e71c017005c66 |
|
MD5 | d69de96a7ac9c49954bcaac88366510d |
|
BLAKE2b-256 | 117c700db929d2daf297df5ea80c1d8e0631c913bc37e20d98571f0145d22787 |