Skip to main content

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

  1. RB_DEFAULT_RESPONSE_FORMAT: (default: ‘application/json’)

  2. RB_DEFAULT_ACCEPTABLE_MIMETYPES: (default: a list of all supported mimetypes)

  3. RB_DEFAULT_ENCODE: (default: ‘utf-8’)

  4. RB_DEFAULT_DUMP_INDENT: (default: None)

  5. RB_FORMAT_KEY: (default: ‘format’)

  6. RB_BASE64_ALTCHARS: (default: None)

  7. RB_HTML_DEFAULT_TEMPLATE: (default: None)

  8. RB_HTML_AS_TABLE: (default: True)

  9. RB_YAML_ALLOW_UNICODE: (default: True)

  10. RB_CSV_DEFAULT_NAME: (default: ‘filename’)

  11. RB_CSV_DELIMITER: (default: ‘;’)

  12. RB_CSV_QUOTING_CHAR: (default: ‘”’)

  13. RB_CSV_DIALECT: (default: ‘excel-tab’)

  14. RB_XML_CDATA: (default: False)

  15. RB_XML_ROOT: (default: ‘ROOT’)

  16. RB_FLATTEN_PREFIX: (default: ‘’)

  17. RB_FLATTEN_SEPARATOR: (default: ‘_’)

License MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Flask-ResponseBuilder-2.0.0.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

Flask_ResponseBuilder-2.0.0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file Flask-ResponseBuilder-2.0.0.tar.gz.

File metadata

  • Download URL: Flask-ResponseBuilder-2.0.0.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.1.0 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.5

File hashes

Hashes for Flask-ResponseBuilder-2.0.0.tar.gz
Algorithm Hash digest
SHA256 9146e01abbbc909b90f2d0ef764b9534af5ed1f0922aa1eec18db271a25a23b4
MD5 895c886b37b1379e556d28efb333e25e
BLAKE2b-256 a42840ca800df92b604bf0280ddcf7e01a74d80459e85afb2c68cb3f48e860c1

See more details on using hashes here.

File details

Details for the file Flask_ResponseBuilder-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: Flask_ResponseBuilder-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.1.0 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.5

File hashes

Hashes for Flask_ResponseBuilder-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2fcaeff11d2ab5e4dd0ff2887fede87f0d0ff051297b0a388d28b05bb15489d2
MD5 8c07cac232328ad21a1f233c68e9ef43
BLAKE2b-256 c6b5a198ce9f74e3d762b8fbbdb99b2c0a2a17bf0a54e91db3bd507593003867

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page