Show errors, even in production.
This commit is contained in:
parent
60708b5bb7
commit
af1640abec
3 changed files with 134 additions and 1 deletions
34
main.py
34
main.py
|
|
@ -2,19 +2,51 @@
|
|||
"""Find photos on flickr for Wikipedia articls and contact the photographer."""
|
||||
|
||||
import collections
|
||||
import inspect
|
||||
import json
|
||||
import sys
|
||||
import traceback
|
||||
import typing
|
||||
from urllib.parse import unquote
|
||||
|
||||
import flask
|
||||
import requests
|
||||
import werkzeug
|
||||
from werkzeug.debug.tbtools import DebugTraceback
|
||||
|
||||
app = flask.Flask(__name__)
|
||||
app.debug = True
|
||||
app.debug = False
|
||||
|
||||
enwiki = "en.wikipedia.org/wiki/"
|
||||
|
||||
|
||||
@app.errorhandler(werkzeug.exceptions.InternalServerError)
|
||||
def exception_handler(e: werkzeug.exceptions.InternalServerError) -> tuple[str, int]:
|
||||
"""Handle exception."""
|
||||
exec_type, exc_value, current_traceback = sys.exc_info()
|
||||
assert exc_value
|
||||
tb = DebugTraceback(exc_value)
|
||||
|
||||
summary = tb.render_traceback_html(include_title=False)
|
||||
exc_lines = "".join(tb._te.format_exception_only())
|
||||
|
||||
last_frame = list(traceback.walk_tb(current_traceback))[-1][0]
|
||||
last_frame_args = inspect.getargs(last_frame.f_code)
|
||||
|
||||
return (
|
||||
flask.render_template(
|
||||
"show_error.html",
|
||||
plaintext=tb.render_traceback_text(),
|
||||
exception=exc_lines,
|
||||
exception_type=tb._te.exc_type.__name__,
|
||||
summary=summary,
|
||||
last_frame=last_frame,
|
||||
last_frame_args=last_frame_args,
|
||||
),
|
||||
500,
|
||||
)
|
||||
|
||||
|
||||
@app.route("/")
|
||||
def start() -> str:
|
||||
"""Start form."""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue