Subclassing Flask

The Flask class is designed for subclassing.

For example, you may want to override how request parameters are handled to preserve their order:

  1. from flask import Flask, Request
  2. from werkzeug.datastructures import ImmutableOrderedMultiDict
  3. class MyRequest(Request):
  4. """Request subclass to override request parameter storage"""
  5. parameter_storage_class = ImmutableOrderedMultiDict
  6. class MyFlask(Flask):
  7. """Flask subclass using the custom request class"""
  8. request_class = MyRequest

This is the recommended approach for overriding or augmenting Flask’s internal functionality.