{% if exception_type %}{{ exception_type }}{% else %}Report{% endif %}{% if request %} at {{ request.path_info }}{% endif %}
{% if exception_value %}{{ exception_value }}{% else %}No exception message supplied{% endif %}
{% if request %}
Request Method: {{ handler.request.method }}
Request URL: {{ handler.request.uri }}{% endif %}
Tornado Version: {{ tornado_version_info }}
TornadoApi Version: {{ tornadoapi_version_info }}
Python Executable: {{ sys_executable }}
Python Version: {{ sys_version_info }}
Python Path: {{ sys_path }}
Server time: {{ server_time }}
{% if template_does_not_exist %}Template loader postmortem
{% if postmortem %}Tornado tried loading these templates, in this order:
{% for entry in postmortem %}
Using engine {{ entry.backend.name }}:
{% if entry.tried %}{% for attempt in entry.tried %}    * {{ attempt.0.loader_name }}: {{ attempt.0.name }} ({{ attempt.1 }})
{% endfor %}{% else %}    This engine did not provide a list of tried templates.
{% endif %}{% endfor %}
{% else %}No templates were found because your 'TEMPLATES' setting is not configured.
{% endif %}
{% endif %}{% if template_info %}
Template error:
In template {{ template_info.name }}, error at line {{ template_info.line }}
   {{ template_info.message }}
{% for source_line in template_info.source_lines %}{% if source_line.0 == template_info.line %}   {{ source_line.0 }} : {{ template_info.before }} {{ template_info.during }} {{ template_info.after }}{% else %}   {{ source_line.0 }} : {{ source_line.1 }}{% endif %}{% endfor %}{% endif %}{% if frames %}

Traceback:
{% set last_exc_cause = None %}{% for frame in frames %}{% if last_exc_cause != frame.exc_cause %}{% set last_exc_cause = frame.exc_cause %}{% if frame.exc_cause %}
{% if frame.exc_cause_explicit %}The above exception ({{ frame.exc_cause }}) was the direct cause of the following exception:{% else %}During handling of the above exception ({{ frame.exc_cause }}), another exception occurred:{% endif %}
{% endif %}{% endif %}
File "{{ frame.filename }}" in {{ frame.function }}
{% if frame.context_line %}  {{ frame.lineno }}. {{ frame.context_line }}{% endif %}
{% endfor %}
{% if exception_type %}Exception Type: {{ exception_type }}{% if request %} at {{ request.path_info }}{% endif %}
{% if exception_value %}Exception Value: {{ exception_value }}{% endif %}{% endif %}{% endif %}
{% if handler %}Request information:
{% if user_str %}USER: {{ user_str }}{% endif %}

GET:{% if request_GET_items %}{% for k, v in request_GET_items %}
{{ k }} = {{ v }}{% endfor %}{% else %} No GET data{% endif %}

POST:{% if filtered_POST_items %}{% for k, v in filtered_POST_items %}
{{ k }} = {{ v }}{% endfor %}{% else %} No POST data{% endif %}

FILES:{% if request_FILES_items %}{% for k, v in request_FILES_items %}
{{ k }} = {{ v }}{% endfor %}{% else %} No FILES data{% endif %}

COOKIES:{% if request_COOKIES_items %}{% for k, v in request_COOKIES_items %}
{{ k }} = {{ v }}{% endfor %}{% else %} No cookie data{% endif %}

HEADERS:{% for k, v in handler.request.headers.get_all()|sort(0) %}
{{ k }} = {{ v }}{% endfor %}
{% else %}Request data not supplied
{% endif %}
{% if app_settings %}
AppSettings:
Tornado Application settings{% for k, v in app_settings.items()|sort(0) %}
{{ k }} = {{ v }}{% endfor %}{% endif %}
Settings:
Using settings module {{ settings.SETTINGS_MODULE }}{% for k, v in settings.items()|sort(0) %}
{{ k }} = {{ v }}{% endfor %}

{% if not is_email %}
You're seeing this error because you have serve_traceback = True in your
Tonado Application settings. Change that to False, and Tonado will
display a standard page generated by the handler for this status code.
{% endif %}