class ProfilerMiddleware: (source)
Wrap a WSGI application and profile the execution of each request. Responses are buffered so that timings are more exact. If ``stream`` is given, :class:`pstats.Stats` are written to it after each request. If ``profile_dir`` is given, :mod:`cProfile` data files are saved to that directory, one file per request. The filename can be customized by passing ``filename_format``. If it is a string, it will be formatted using :meth:`str.format` with the following fields available: - ``{method}`` - The request method; GET, POST, etc. - ``{path}`` - The request path or 'root' should one not exist. - ``{elapsed}`` - The elapsed time of the request. - ``{time}`` - The time of the request. If it is a callable, it will be called with the WSGI ``environ`` dict and should return a filename. :param app: The WSGI application to wrap. :param stream: Write stats to this stream. Disable with ``None``. :param sort_by: A tuple of columns to sort stats by. See :meth:`pstats.Stats.sort_stats`. :param restrictions: A tuple of restrictions to filter stats by. See :meth:`pstats.Stats.print_stats`. :param profile_dir: Save profile data files to this directory. :param filename_format: Format string for profile data file names, or a callable returning a name. See explanation above. .. code-block:: python from werkzeug.middleware.profiler import ProfilerMiddleware app = ProfilerMiddleware(app) .. versionchanged:: 0.15 Stats are written even if ``profile_dir`` is given, and can be disable by passing ``stream=None``. .. versionadded:: 0.15 Added ``filename_format``. .. versionadded:: 0.9 Added ``restrictions`` and ``profile_dir``.
Method | __call__ |
Undocumented |
Method | __init__ |
Undocumented |
Instance Variable | _app |
Undocumented |
Instance Variable | _filename |
Undocumented |
Instance Variable | _profile |
Undocumented |
Instance Variable | _restrictions |
Undocumented |
Instance Variable | _sort |
Undocumented |
Instance Variable | _stream |
Undocumented |
WSGIEnvironment
, start_response: StartResponse
) -> t.Iterable[ bytes]
:
(source)
¶
Undocumented
WSGIApplication
, stream: t.IO[ str]
= sys.stdout, sort_by: t.Iterable[ str]
= (t.Iterable[ t.Union[ str, int, float]]
= (), profile_dir: t.Optional[ str]
= None, filename_format: str
= '{method}.{path}.{elapsed:.0f}ms.{time:.0f}.prof'):
(source)
¶
Undocumented