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
NOTE: From 2.1.11 the dicttoxml package seems to be abandoned, so a copy of module dicttoxml is ported in this package to fix deprecation warning, but if dicttoxml is installed it has priority. In future will be removed and the internal module will be improved.
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
For every registered builder you can explicitly use them in two ways:
@app.route('/decorator')
@rb.response('json')
def test_decorator():
return data, 200, {'header': 'header'}
@_app.route('/csv')
def index_csv():
builder = rb.csv(filename='file.csv')
return builder((data, 200))
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: ‘_’)
RB_JSONP_PARAM: (default: ‘callback’) if empty or None jsonp is disabled
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
File details
Details for the file Flask-ResponseBuilder-2.0.14.tar.gz
.
File metadata
- Download URL: Flask-ResponseBuilder-2.0.14.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3530e8cbf932e6636a3c23e7ed8d8001d444a591370e5c81cd42c8ddd671eddf |
|
MD5 | 23985a01551c4a6f0d94926d47051b65 |
|
BLAKE2b-256 | e393dceea234582ab13e4470ee1ef87c3609f1944ea569d95d55e0c02f612208 |
File details
Details for the file Flask_ResponseBuilder-2.0.14-py3-none-any.whl
.
File metadata
- Download URL: Flask_ResponseBuilder-2.0.14-py3-none-any.whl
- Upload date:
- Size: 25.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | be86fac211bcd08e23e29f5b00f6d2b810e74bafaec1c6726e0182a97373da71 |
|
MD5 | d50f3a7ed6b1b30ab96fe8538cf29275 |
|
BLAKE2b-256 | 80419958fd134ad0e0f2368adf025357f581926b5ab6424ff1737495f8f302ac |